zoukankan      html  css  js  c++  java
  • 阻塞和非阻塞IO

    1:阻塞IO就是执行设备操作时,如果不能获得资源,进程就会被挂起进入睡眠状态,直到等待条件满足。
      非阻塞IO就是资源不能获得时不会挂起,驱动返回 -EAGAIN。应用程序或者不断轮询IO设备,或者通过IO多路复用(selectpollepoll)
    阻塞检测设备是否可以立即读写,如果可以立即读写返回执行IO函数。

    2:在打开文件时使用O_NONBLOCK标志指定非阻塞IO,或者在打开文件后,使用ioctl()或fcntl()改变IO模式。例如:
    fcntl(fd, F_SETFL, O_NONBLOCK);设置为非阻塞。

    3:一般阻塞IO 驱动通过 等待队列机制 实现,非阻塞IO 驱动通过文件操作的 poll()函数实现。

  • 相关阅读:
    leetcode211
    leetcode209
    leetcode201
    leetcode1396
    leetcode1395
    leetcode1394
    leetcode1386
    leetcode1387
    leetcode1382
    leetcode1376
  • 原文地址:https://www.cnblogs.com/bobfly1984/p/14083128.html
Copyright © 2011-2022 走看看