同步异步IO,阻塞非阻塞

同步异步

同步IO操作:导致请求进程阻塞,知道IO操作完成。
异步IO操作:不导致进程阻塞。

在处理(网络) IO 的时候,阻塞和非阻塞都是同步IO
阻塞,就是调用我(函数),我(函数)没有接收完数据或者没有得到结果之前,我不会返回。
非阻塞,就是调用我(函数),我(函数)立即返回,通过select通知调用者
阻塞与非阻塞的区分在于网络IO时进行IO操作的线程会不会挂起,其实对于某些IO模型来说,阻塞非阻塞其实比较难定义,比如select模型中指用户线程不会阻塞于recvfrom等网络IO操作上,但在select操作本身上是阻塞的,不过因为网络IO并未阻塞的原因仍称selec模型为非阻塞的模型。

同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞

阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回

猜你喜欢

转载自www.cnblogs.com/Jun10ng/p/12355167.html