一、同步与异步
先来个概念性的东西:
同步.异步
所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,而异步则直接返回
例子:
同步:老妈叫小明去烧一壶开水,小明就在旁边等开水开为止。
异步:小明把那壶水放下去烧,然后没有等待,等烧水响了再过来
同步异步的区别就是:是否等待返回的结果,同步等待,异步则不等待
二、阻塞与非阻塞
概念:
阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。
非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
例子:
阻塞:老妈叫小明去烧一壶开水,小明就在旁边等开水开为止。(同步:一直关注水壶等待着 阻塞:不能做其他事情);
非阻塞:小明去烧一壶开水,是否烧开,就去房间打王者荣耀了,(非阻塞:可以干其他事情);水烧开了再出来关了(异步:因为不需要自己去等待)
阻塞与非阻塞的区别就是:能否做其他事情,阻塞时候,线程被挂起,不能做其他事情,而非阻塞可以
可以参考:https://www.cnblogs.com/Anker/p/5965654.html
深入理解可以参考:http://blog.csdn.net/historyasamirror/article/details/5778378