linux IO阻塞/非阻塞、同步与异步

 linux IO的比较

借用其他博客的图形,如侵权请告知。

 阻塞IO和非阻塞IO的主要区别是:进程(线程)在执行过程中是否立即返回(可以这么理解).阻塞IO是则是在系统调用函数的内核中。

同步IO和异步IO

  • 同步IO: 请求进程被阻塞,直到IO操作完成。
  • 异步IO:请假进行不会被阻塞。

所以常用IO可以区分为:

  1. 同步阻塞IO:
    • 同步:做一件事情,等待完成,
    • 阻塞:等待完成期间,不能去做别的任务;
  2. 同步非阻塞IO:
    • 同步:做一件事情,等待完成,
    • 非阻塞:期间可以去做别的任务,但是要不停地查看是否被完成。
  3. 异步阻塞IO:(一般不用)
    • 异步:做一件事情,不等待完成,完成后通知我。
    • 阻塞:在等待的过程中,不能做任何任务。
  4. 异步非阻塞IO:
    • 异步:做一件事情,不等待完成,完成后通知我。
    • 非阻塞:在等待的过程中,去做别的任务,完成后通知我。

Linux 的IO 模型

linux的IO模型主要分为:

阻塞式I/O
非阻塞式I/O
I/O复用(select,poll,epoll等)
信号驱动式I/O(SIGIO)
异步I/O(POSIX的aio_系列函数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值