阻塞函数和非阻塞函数的区别

简单理解:
阻塞函数就是:程序一直停在此函数处,等待后续操作,有相关操作之后程序才能继续执行,而非阻塞函数是:程序运行在此不会中断,继续向下执行,当此处有操作时,继续此条件的后续操作
如c++中:
kbhit()在执行时,检测是否有按键按下,有按下返回非0值,没有按下则返回0,是非阻塞函数;
getch()在执行时, 检测按下什么键, 如果不按键该函数不返回,也就不进行下一步操作,是阻塞函数。

其他解释:
对于异步程序和非阻塞I/O,记得在知乎上看到过一个非常好的举例:你给图书馆打电话查书,图书馆的管理员会有两种反应,第一种:“麻烦等一下,不用挂电话,我查一下”;第二种:“知道了,等我查到了我给您回电话”。这里面的区别,一个在你,一个在电话线路。第一种情况下,你不能去干别的,只能老老实实的在电话前面等着,而且,别人在这段时间里没法给你打电话了。第二种情况就无所谓了,你可以去high,去耍,去上厕所,其他的朋友给你打电话你也接的到。第一种情况就是同步的、阻塞的,第二种就是异步的、非阻塞的

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值