【操作系统】阻塞非阻塞I/O、同步异步I/O
阻塞I/O:程序发起I/O操作时,程序被挂起,直到I/O操作完成并返回结果。在这个过程中,程序会被阻塞无法执行其他任务。适用于简单、低并发的场景。
非阻塞I/O:程序发起I/O操作时,不会等待,立即返回。在这个过程中,程序可以继续执行其他任务。适用于高性能、高并发场景。
看同步还是异步,主要看缓冲区数据是谁拷贝的。
同步I/O:需要代码实现从内核缓冲区到用户缓冲区的拷贝。如程序主动调用read函数。
异步I/O:内核自动将数据从内核缓冲区拷贝到用户缓冲区,应用程序不需要主动发起拷贝操作,拷贝完成后,通知应用程序进行处理。