nio和io

本文详细介绍了四种主要的IO模型:同步阻塞IO、非阻塞IO、IO多路复用(如select、poll、epoll)以及异步IO。同步阻塞IO在数据未准备好时会挂起线程,非阻塞IO则允许线程在数据未准备好时执行其他任务,而IO多路复用通过统一的轮询避免了频繁检查。异步IO则由内核完成数据准备并通知用户线程,实现了真正意义上的非阻塞操作。
摘要由CSDN通过智能技术生成
  1. io 同步阻塞io
    write和read完全阻塞,发起read时就挂起当前线程,直到内核数据完全准 备好,开始工作

  2. noblock io 同步阻塞
    发起read时 内核如果数据准备好,返回成功,客户端阻塞执行,如果未准备好,客户线程返回干自己的事,客户线程会轮询内核数据状态

3.new io io多路复用
select poll epoll(linux)类似2,但是不会来一个请求就起一个线程去轮询,而是通过一个线程 统一调用select方法轮询状态

4.aio 异步io
由内核主导,用户线程发起read后立即返回干别的事,又内核主导准备数据,内核缓冲区复制到用户缓冲区,然后通知用户线程继续执行,即回调。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值