基本概念-同步、异步、阻塞、非阻塞
2017-08-08 11:59
295 查看
早上复习了下这几个概念,做一个简单的总结。
主要参考了这篇链接:[聊聊同步、异步、阻塞与非阻塞](ps:这篇写的真心赞啊!大家可直接看这篇)
也就是说,同步的情况下,是由处理消息者自己去等待消息是否被触发,而异步的情况下是由触发机制来通知处理消息者。
简言之:
同步:消息处理着主动等消息
异步:别人通知消息处理着。
(消息:事件完成,事件触发)
举例:同步I/O,异步I/O
同步I/O自己去等I/O完成,在等的过程中,可以阻塞,可以不阻塞。但是如果不阻塞,因为还是要等,所以需要不断切换任务来“看”I/O是否完成,系统有开销。所以,同步非阻塞I/O效率最低。
异步I/O,自己不等I/O完成,而是I/O完成之后,通知消息处理着,后者去处理。显然,异步非阻塞效率最高。
在上文中,同步异步关心的I/O是否完成(即I/O是否可读)消息调用着是怎么知道的,自己等,还是别人告诉你。阻塞非阻塞关心的是不管是自己等,还是别人告诉你。在你知道消息前,线程所处的状态。
主要参考了这篇链接:[聊聊同步、异步、阻塞与非阻塞](ps:这篇写的真心赞啊!大家可直接看这篇)
概述
同步异步主要是从消息通知的机制角度来说的,而阻塞与非阻塞关注的则是等待消息通知时的状态。也就是说,同步的情况下,是由处理消息者自己去等待消息是否被触发,而异步的情况下是由触发机制来通知处理消息者。
简言之:
同步:消息处理着主动等消息
异步:别人通知消息处理着。
(消息:事件完成,事件触发)
举例:同步I/O,异步I/O
同步I/O自己去等I/O完成,在等的过程中,可以阻塞,可以不阻塞。但是如果不阻塞,因为还是要等,所以需要不断切换任务来“看”I/O是否完成,系统有开销。所以,同步非阻塞I/O效率最低。
异步I/O,自己不等I/O完成,而是I/O完成之后,通知消息处理着,后者去处理。显然,异步非阻塞效率最高。
在上文中,同步异步关心的I/O是否完成(即I/O是否可读)消息调用着是怎么知道的,自己等,还是别人告诉你。阻塞非阻塞关心的是不管是自己等,还是别人告诉你。在你知道消息前,线程所处的状态。
相关文章推荐
- 基本概念:同步、异步、阻塞和非阻塞(转载)
- 基本概念:同步、异步、阻塞和非阻塞
- 基本概念:同步、异步、阻塞和非阻塞
- 转: 基本概念:同步、异步、阻塞和非阻塞
- 基本概念:同步、异步、阻塞和非阻塞
- 基本概念:同步、异步、阻塞和非阻塞
- 基本概念:同步、异步、阻塞和非阻塞
- 基本概念:同步、异步、阻塞和非阻塞
- 基本概念:同步、异步、阻塞和非阻塞
- PHP-Socket-阻塞与非阻塞,同步与异步概念的理解
- 同步、异步、阻塞和非阻塞的概念
- Java千百问_01基本概念(014)_同步、异步有什么区别
- 网络编程中的阻塞与非阻塞,同步与异步概念的理解
- 同步、异步、阻塞和非阻塞的概念
- 阻塞、非阻塞、同步、异步概念
- 并发编程基础概念(一) IO-同步,异步,阻塞,非阻塞(转)
- socket同步异步,阻塞,非阻塞的概念解析集合
- 同步、异步、阻塞和非阻塞的概念
- 同步、异步、阻塞和非阻塞的概念
- socket阻塞与非阻塞、同步与异步概念