参考网址
https://blog.csdn.net/weixin_35688430/article/details/109740331
同步,异步,阻塞,非阻塞之间的区别
- 同步、异步,与阻塞、非阻塞不相关。
- 同步、异步强调的是,是否得到(最终的)结果;
- 阻塞、非阻塞强调是时间,是否等待。
- 同步与异步区别在于:调用者是否得到了想要的最终结果。
- 同步就是一直要执行到返回最终结果;
- 异步就是直接返回了,但是返回的不是最终结果。调用者不能通过这种调用得到结果,以后可以通过被调用者提供的某种方式(被调用着通知调用者、调用者反复查询、回调),来取回最终结果。
- 阻塞与非阻塞的区别在于,调用者是否还能干其他事。
- 阻塞,调用者就只能干等;
- 非阻塞,调用者可以先去忙会别的,不用一直等。
同步,异步,阻塞,非阻塞之间的联系
- 同步阻塞,我啥事不干,就等你打饭打给我。打到饭是结果,而且我啥事不干一直等,同步加阻塞。
- 同步非阻塞,我等着你打饭给我,饭没好,我不等,但是我无事可做,反复看饭好了没有。打饭是结果,但是我不一直等。
- 异步阻塞,我要打饭,你说等叫号,并没有返回饭给我,我啥事不干,就干等着饭好了你叫我。例如,取了号什么不干就等叫自己的号。
- 异步非阻塞,我要打饭,你给我号,你说等叫号,并没有返回饭给我,我去看电视、玩手机,饭打好了叫我。
- 最理想的状态: 异步非阻塞