【转】同步、异步、阻塞、非阻塞

转自:[url]http://blog.hiwgy.com/2012/02/22/synchronous_asynchronous_block_unblock/[/url]

同步、异步、阻塞、非阻塞这4个词在计算机IO和网络模型中非常常见。今天我自己给别人解释,又把自己解释糊涂了。回忆了国外操作系统中一个投递邮件的例子。

理解时应该组合着理解,有以下四种情况:
现在你是一个邮递员。
同步阻塞:把邮件投递到hiwgy家的邮箱中,然后站在邮箱旁边等,等到hiwgy把邮件取走了,你才继续投递下一封邮件。
同步非阻塞:把邮件投递到hiwgy家的邮箱中,然后你就继续投递下一封邮件;但是,你不停得给hiwgy打电话,问他是否收到了邮件。
异步阻塞:把所有邮件投递到所有收件人的邮箱中,然后你回到了家里,你开始等收件人给你打电话。
异步非阻塞:把邮件投递到hiwgy家的邮箱中,然后你继续投递下一封邮件,hiwgy突然给你打了个电话,告诉你他收到邮件了,你知道了。

如果要单独理解“同步和异步”,或者单独理解“阻塞和非阻塞”
同步和异步:感觉这个不好解释。同步主要指你的线程要主动关注你的行为是否达到目标了;异步,会有别人通知你,你的行为达到目标了。
阻塞和非阻塞:指你自己的线程,是否需要wait。比如一个IO写函数调用,如果你需要等待写操作执行完毕,函数才返回,那么就是阻塞;如果写操作并未执行完毕,函数就返回,那么就是非阻塞。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值