同步
所谓同步,就是调用一个功能,在没有得到结果之前,该调用就不返回,死等结果。也就是必须一件一件事做,等前一件做完了才能做下一件事。
举例
就像早上起床后,先洗涮,然后才能吃饭,不能在洗涮没有完成时就开始吃饭。
异步
就是我调用一个功能,不需要知道该功能结果,该功能有结果后通知我(回调通知)。
阻塞
阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。
举例
比如到你某个时候到A楼一层(假如是内核缓冲区)取快递,但是你不知道快递什么时候过来,你又不能干别的事,只能死等着。但你可以睡觉(进程处于休眠状态),因为你知道快递把货送来时一定会给你打个电话(假定一定能叫醒你)。
非阻塞
非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
举例
如果用忙轮询的方法,每隔5分钟到A楼一层(内核缓冲区)去看快递来了没有。如果没来,立即返回。而快递来了,就放在A楼一层,等你去取。