I/O模型之同步 异步 阻塞 非阻塞 /////并发模式的同步与异步

I/O模型之同步 异步 阻塞 非阻塞

同步I/O分为阻塞 与 非阻塞
异步I/O则不讨论阻塞与否(只需发出请求,不用读写,系统读写完毕通知回来处理数据
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
总结:
在这里插入图片描述
同步:执行一个操作之后,等待结果(同步阻塞是一直等待,同步非阻塞是每隔一段时间就回去询问数据是否读写完成),然后才继续执行后续的操作。
如同步I/O模型实现的Reactor事件处理模式:工作线程需要自己从socket读取数据
在这里插入图片描述
异步:执行一个操作后,可以去执行其他的操作,然后等待通知再回来执行刚才没执行完的操作。
如异步模型实现的Proactor模式的工作流程:内核读取socket上的数据,完成后通知应用程序
在这里插入图片描述

阻塞:进程给CPU传达一个任务之后,一直等待CPU处理完成,然后才执行后面的操作。

非阻塞:进程给CPU传达任我后,继续处理后续的操作,隔断时间再来询问之前的操作是否完成。这样的过程其实也叫轮询。

Reference:https://www.cnblogs.com/Anker/p/5965654.html

/
/*
另外,
I/O模型中,同步异步区分的是内核向应用程序通知的哪种I/O事件(就绪事件or完成事件)以及由谁完成I/O读写(同步是应用,异步是内核)

并发模式:
分为半同步/半异步模式,领导者/追随者模式
半同步/半异步模式:同步线程处理客户逻辑,异步线程处理I/O事件
领导者/追随者模式:多个工作线程轮流获得源事件集合,轮流监听,分发并处理事件
在这里插入图片描述
并发模式中,同步指 程序完全按照代码序列的顺序执行 ;异步 指 程序的执行需要系统事件(如中断,信号等)来驱动

*/

猜你喜欢

转载自blog.csdn.net/FrankAx/article/details/104148711