请求发数据并等待数据发完:同步阻塞。
请求发数据,检查是否发完,没发完就先去干别的事情:同步非阻塞。
请求发数据,另一个线程等待数据发完,回调主线程:异步阻塞(大概)。
请求发数据,让 os 发完后回调你:异步非阻塞。
-
所谓同步,就是在发出一个调用时,在没有得到结果之前, 该调用就不返回。
-
异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果(结果会在不久的将来获得)
-
如果“同步”是发起了一个调用后, 没有得到结果之前不返回,那它毫无疑问就是被“阻塞”了(即调用进程处于 “waiting” 状态)。
-
如果“异步”调用发出了以后就直接返回了, 毫无疑问, 这个进程没有被“阻塞”。
异步与否,取决于你的函数调用返回之后 OS 有没有在后台给你做事情。
阻塞与否,取决于在非就绪状态时调用是否返回。