目录
一句话说清楚
我查还是你给;等还是不等;
我查——同步, 你给——异步;
等——阻塞, 不等——阻塞;
同步和异步
CPU时间片的利用。主要看请求发起方对结果的获取是主动发起的还是被动通知的。
请求主动发起,一直等待结果 —— 同步,阻塞
请求主动发起,先做其他事情,需要不断轮询查看是否有响应结果 —— 同步,非阻塞
- 请求发起方主动获取响应结果,就是同步操作。
请求发出后,等待服务方通知结果
一直等待结果 —— 异步,阻塞
先去做自己的事 —— 异步,非阻塞
- 响应结果由服务方通知,就是异步操作。
阻塞和非阻塞
通常针对I/O操作
在等待响应结果之前,当前线程的状态是挂起还是运行。
请求发出后,当前线程挂起,等待响应,处于阻塞状态。
请求发出后,当前线程继续运行。处于非阻塞状态。
总结
同步和异步 :响应结果的通知方式,我查还是你给
自己请求后,主动获取响应结果,就是同步。
自己请求后,被动(别人通知给你)获取响应结果,就是异步。
阻塞和非阻塞 :响应结果的获取方式, 等还是不等
自己请求后,一直等到结果返回,就是阻塞。
自己请求后,去处理其他事情了,就是非阻塞。