阻塞IO(Blocking IO):应用程序在进行IO操作时,会一直阻塞等待IO完成,期间无法进行其他操作。
非阻塞IO(Non-blocking IO):应用程序在进行IO操作时,会立即返回,无论IO操作是否完成,应用程序都可以进行其他操作。需要通过轮询的方式来判断IO是否完成,因此效率较低。
IO多路复用(IO Multiplexing):通过select、poll、epoll等系统调用,在一个进程中可以同时监控多个文件描述符,当有任何一个文件描述符就绪时,就可以进行IO操作。
信号驱动IO(Signal Driven IO):应用程序在进行IO操作时,向内核注册一个信号处理函数,内核在IO完成时会向应用程序发送一个信号,应用程序收到信号后再进行数据处理。
异步IO(Asynchronous IO):应用程序进行IO操作时,可以立即返回,内核负责将数据读取到指定的缓冲区中,并在完成后通知应用程序,应用程序可以继续进行其他操作。异步IO需要操作系统和硬件的支持,目前主要应用于高性能IO场景。
THE END
暂无评论内容