同步&异步+阻塞&非阻塞(理解)

本文深入解析了同步与异步、阻塞与非阻塞的概念及其在消息通信机制和程序状态中的应用,通过具体实例帮助理解不同机制的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 - 同步&异步

  同步和异步关注的是消息通信机制。

0.1 - 同步

  由“调用者”主动等待这个“调用”结果。即是,发出一个“调用”时,在没有得到结果之前,该“调用”不返回,一旦调用返回,则得到返回值。

0.2 - 异步

  “调用者”不主动等待“调用”结果,而是“调用”结束之后主动通知“调用者”(通过状态、通知或者回调函数等各种形式)。

0.3 - 同步&异步-举例

  例如,我打电话去询问教务处老师有没有开设”高性能计算导论“这门课。如果是同步机制,则老师会说,”稍等一下,我查一下“,然后我就在接通电话的状态下一直等着老师的回复;而如果是异步机制,则我就会挂断电话,等老师查询之后直接通过”回电“的方式通知我。

1 - 阻塞&非阻塞

  阻塞和非阻塞关注的是程序在等待调用结果时的状态。

1.1 - 阻塞

  阻塞是指程序在等待结果时该线程会挂起,即是说做不了其它事。

1.2 - 非阻塞

  非阻塞是指程序在等待结果时不阻塞当前线程,可以做其它的事。

1.3 - 阻塞&非阻塞-举例

  还是上面的例子,我还是打电话询问教务处老师有没有开设”高性能计算导论“这门课。如果是同步阻塞机制,则老师说,”稍等一下,我查一下“之后,我会一直守在通话旁等待老师回复而不做任何其它事情;如果是同步非阻塞机制,在老师说完之后我会同步做其它的一些小事情,比如用电脑刷刷微博等等,但还是会时不时注意手机保持的通话中老师是否在回复我。异步阻塞和异步非阻塞与相应的同步阻塞和非阻塞对应,但是我会挂断电话,以老师“回电”方式告知我。

2 - 参考资料

https://www.zhihu.com/question/19732473

转载于:https://www.cnblogs.com/CZiFan/p/9726908.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值