ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

同步与阻塞

2021-12-19 10:33:25  阅读:132  来源: 互联网

标签:异步 同步 调用者 最终 阻塞 调用


同步与异步

函数或方法被调用的时候
调用者能直接得到最终结果的是同步调用,
调用者不能直接得到最终结果的是异步调用。
以去餐厅吃饭为例,同步就是去点菜正好有一份做好的可以直接吃,异步就是饭还没做好。

阻塞与非阻塞

函数或方法被调用的时候
立即返回的是非阻塞调用
不能立即返回的就是阻塞调用
阻塞就是饭没好我就一直等着,非阻塞就是我取个号然后去买个彩票等饭好了我再去。

区别

  • 同步、异步与阻塞、非阻塞不相关。
  • 同步、非同步强调是否得到最终结果。
  • 阻塞、非阻塞强调是否等待。

同步与异步的区别:
同步要一直执行到得到返回最终结果。
异步可以直接返回,但返回的不是最终结果。调用者以后可以通过被调用者提供的其它方式(被调用者通知调用者、调用者反复查询、回调(调用者先约定好最终结果要放在哪里,等最终结果出来了再去取))得到最终结果。

阻塞与非阻塞的区别:
调用者是否还可以干其它事。
阻塞只能一直等待最终结果,非阻塞在得到最终结果前可以干其它事。

联系

  • 同步阻塞,我点好饭就啥也不干一直等着。
  • 不常用 同步非阻塞,我点好饭,饭没好,我不等但是也没其它事,反复确认饭好没好。
  • 不常用 异步阻塞,我点好饭,饭没好服务员说要取号,我取了号什么也不干就等着。
  • 异步非阻塞,我点好饭,饭没好需要取号,取了号后我去隔壁买彩票了,饭好了叫我。(concurrent.futures)

标签:异步,同步,调用者,最终,阻塞,调用
来源: https://www.cnblogs.com/atlas-777/p/15706774.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有