同步/异步

同步/异步 与 阻塞/非阻塞的区别

坚强是说给别人听的谎言 提交于 2019-12-15 20:04:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 转贴地址: http://www.cppblog.com/converse/archive/2009/05/13/82879.html ####################### //声明: 1 本帖作者是: 那谁的技术博客 ,至此感谢! ####################### 同步/异步 与 阻塞/非阻塞的区别 我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别. 这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方. 首先来解释同步和异步的概念,这两个概念与 消息的通知机制 有关. 举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了. 前者(排队等候)就是同步等待消息,而后者(等待别人通知)就是异步等待消息.在异步消息处理中,等待消息者(在这个例子中就是等待办理业务的人)往往注册一个回调机制,在所等待的事件被触发时由触发机制(在这里是柜台的人)通过某种机制(在这里是写在小纸条上的号码)找到等待该事件的人. 而在实际的程序中,同步消息处理就好比简单的read/write操作