您的位置:首页 > 其它

同步、异步、阻塞、非阻塞

2016-03-07 20:14 232 查看
同步、异步是API被调用者的通知方式,关注的是协作方式;阻塞、非阻塞API调用者的等待方式,关注的是线程的执行状态。举个例子:

1、你去书店买书,见着老板问他有没有《灌篮高手》,老板说没有,然后你就在这等,或者回去过几天跑过来问老板有没有,直到买到书(当然,也可能老板一直没进这本书,那你就只能继续跑下去了。。。),这就是同步

2、还是你,又去书店买书,这次要买的是《海贼王》吧,老板又说没有(没办法,这孩子太衰),但是,这次你和老板说好了,书到了给你打电话,过了几天,老板通知你书到了,喊你去买 ,这就是异步

3、买《灌篮高手》的时候,如果你一直等在这啥也不干直到买到书,就是阻塞;如果你是没有书就跑回去玩几天,干点自己的事,隔几天在来看看书到没有,直到买到书,这就是非阻塞

4、买《海贼王》的时候,书还没到,你自己也会找点乐子,看电影玩游戏,这是异步非阻塞

总结:

1、同步和异步:同步指的是调用者主动获取函数调用的返回值,异步指的是被调用者在函数执行完返回时主动通知调用者可以拿到返回值了

2、阻塞和非阻塞:阻塞指的是线程在等待函数调用返回值过程中什么也干不了(放弃CPU时间片),而非阻塞指的是线程在这个过程中可以干其他的事
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: