异步与同步 跟 阻塞与非阻塞是不是同一回事?

fromdtor 发布于 2013/05/05 14:03
阅读 211
收藏 2
对他们有一点模糊的,粗略的了解,感觉好像差不多。我哪里错了?
加载中
0
中山野鬼
中山野鬼

呵呵。楼上说的差不多了。。同步,异步,是将的两个主体(程序,代码,甚至是人,或团体组织),在行为流程下,相互之间的约束。如果两个主体的某个流程节点不存在相互依赖关系,那么就是异步的。存在就是同步的。

因为所谓同步,就是他们具备同节拍。而这需要每个主体自身流程的节点迁移时,存在相互依赖关系。

至于阻塞,非阻塞,是针对一个主体,在流程推进中,遇到依赖缺失时,的处理方案。是硬等外部依赖完成,还是把这个事件挂起。如果是单线程,串行逻辑,阻塞和非阻塞没有区别(逻辑上)。

说人话就是,你老婆给你打电话,你有权力在她发表批评时反驳,那么就是异步的,如果她说,你必须听着,问“听清楚没”,你点头“嗯”,那么就是同步的。你老婆批评教育你的时候,你紧张的所用肌肉凝固,shit挂半条,不敢继续放,这是阻塞。如果你一样搓这麻将,示意上家点炮了,那么就是非阻塞的。。。

西门飞
西门飞
野鬼说的太形象了 。。。想知道野鬼公司是做什么产品的?或者方便的话透露下公司的名字或地址
中山野鬼
中山野鬼
回复 @赵长青 : 你就是该同步的不同步,始终异步,还不带任何阻塞的。这样不好。哈。。
fromdtor
fromdtor
多谢了。哈哈!
1
断鸿
断鸿

同步和异步仅仅是关于所关注的消息如何通知的机制,而不是处理消息的机制.也就是说,同步的情况下,是由处理消息者自己去等待消息是否被触发,而异步的情况下是由触发机制来通知处理消息者;而阻塞与非阻塞关注的是程序等待消息时的状态,阻塞就是程序等待时不可以干别的,非阻塞就是可以做些别的事,所以阻塞非阻塞跟同步非同步无关,可以两两组合。

可以看一下:

http://www.cppblog.com/converse/archive/2009/05/13/82879.html

fromdtor
fromdtor
很有帮助,多谢!
返回顶部
顶部