首页 > 其他分享 >BIO、NIO、AIO区别详解

BIO、NIO、AIO区别详解

时间:2023-05-31 10:33:07浏览次数:42  
标签:BIO NIO 主线 阻塞 AIO io 操作

BIO:同步阻塞

主线程发起io请求后,需要等待当前io操作完成,才能继续执行。

NIO:同步非阻塞

引入selector、channel、等概念,当主线程发起io请求后,轮询的查看系统是否准备好执行io操作,没有准备好则主线程不会阻塞会继续执行,准备好主线程会阻塞等待io操作完成。

AIO:异步非阻塞

主线程发起io请求后,不会阻塞,当操作系统io操作完成后向回调函数传递结果,应用程序通过回调函数获得io操作结果。

NIO和AIO区别:NIO是io操作准备好,然后阻塞等待io完成,AIO不需要等待IO操作,io操作完成操作系统会通过回调通知主线程

标签:BIO,NIO,主线,阻塞,AIO,io,操作
From: https://www.cnblogs.com/dengxiaoyi/p/17445350.html

相关文章

  • leetcode 594. Longest Harmonious Subsequence
    Wedefineaharmoniousarrayisanarraywherethedifferencebetweenitsmaximumvalueanditsminimumvalueisexactly1.Now,givenanintegerarray,youneedtofindthelengthofitslongestharmonioussubsequenceamongallitspossiblesubsequences.E......
  • 中国生物科技公司【Advanced Biomed】申请纳斯达克IPO上市
    猛兽财经获悉,总部位于台湾台南的生物科技公司【AdvancedBiomed】近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯达克IPO上市,股票代码为(ADVB)。AdvancedBiomed计划通过此次纳斯达克IPO上市募集1.495亿美元的资金。公司业务总部位于台湾台南的AdvancedBiomed旨在开发一种专......
  • Python中的Union这个类的使用
    在Python中,Union是typing模块中定义的一个类,用于表示多个类型中的任意一种类型。Union类型可以用于表示参数或函数返回值等多种情况下可能的不同类型。具体而言,Union类型可以使用typing.Union[type1,type2,...]的语法来定义,其中type1、type2等参数为可能的类型。例......
  • NIO
    packagecom.jaeson.javastudy;importjava.util.*;importjava.io.*;importjava.net.InetSocketAddress;importjava.nio.ByteBuffer;importjava.nio.channels.FileChannel;importjava.nio.channels.ServerSocketChannel;importjava.nio.channels.SocketChannel;......
  • Docker Desktop 错误:必须在BIOS中启用 硬件辅助虚拟化和数据执行保护
    一、检查Hyper-V是否开启控制面板—》程序----》启用或关闭Windows功能二、重装DockerDesktopDocker的安装就不在赘述了,按照官网安装即可,需要注意的是win10家庭版的需要安装WSL2–即linux的虚拟机内核,官网也有详细安装步骤三、重新配置Hyper-V(生效)经过无数次重启,安......
  • pagintaion
    ```"""自定义的分页组件"""fromdjango.utils.safestringimportmark_safeclassPagination(object):def__init__(self,request,queryset,page_size=10,page_param="page",page_show=5):"""......
  • amzon s3/minio获取预签名上传url,及js使用预签名url上传文件
      $("#btnSubmit").click(function(event){varfile=$("#ipfile")[0].files[0];varcontentType=!!file.type?file.type:"video/x-flv";//请求api接口:调用amzons3/minio的sdk获取临时上传......
  • java中的BIO NIO AIO有什么区别?
    BIO、NIO和AIO都是Java中用于处理网络编程的技术,它们的主要区别如下:BIO:BIO(BlockingIO)阻塞式IO,指I/O的读写操作是阻塞的。当读写操作发生时,线程被阻塞,一直等到I/O完成才返回。BIO是Java最早的网络编程API,也是最常用的API。BIO的实现简单,易于理解和使用,但是由于阻塞......
  • 使用minio进行文件存储
    一.Docker拉取镜像(确保自己的服务器已经安装Docker)dockerpullminio/minio二.启动一个miniio容器dockerrun--nameminio-p9090:9000-p9999:9999-d\--restart=always-e\"MINIO_ROOT_USER=minio"\-e"MINIO_ROOT_PASSWORD=minio123"\-v/home/minio/......
  • MT8395处理器性能参数_Genio 1200芯片规格介绍资料
    联发科技(MediaTek)推出了他们的最新通用型AIoT芯片,MT8395(Genio1200)这款芯片专为高性能物联网应用和人工智能应用而设计,是一款集成了8核CPU和集成了五核图形处理器的高性能芯片。它是使用6纳米工艺制造而成的,内置了独立的双核AI处理器单元(APU),适用于用于智能家电、中控设备......