码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-03-07 20:55:46      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

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

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

总结:

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

2、阻塞和非阻塞:阻塞指的是线程在等待函数调用返回值过程中什么也干不了(放弃CPU时间片),而非阻塞指的是线程在这个过程中可以干其他的事

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

标签:

原文地址:http://www.cnblogs.com/summerautumn/p/5158194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!