多道技术、同步异步和阻塞非阻塞
前期需要储备的知识点
并发
看起来同时运行的就可以称之为并发,其实内部是做了0.1秒A,做了0.1秒B,交替进行运作,看起来像是一起运作的。
并行
真正意义上的同时执行
补充
1.并行肯定算是并发
2.单核的计算机肯定不能实现并行,但是可以实现并发!!
3.我们这里的单核是假设就是一个核,干活的就一个人,不考虑cpu里面的内核
1. 多道技术
1.1 什么是多道技术
简单来说,就是单核实现并发效果的技术
图解:
1.2 为什么要有多道技术
多道技术可以节省多个程序运行的总耗时(时间上复用),也可以让多个程序共用一套计算机硬件(空间上复用)
2. 同步与异步
同步与异步描述的是任务的提交方式
2.1 同步
同步指的是,任务提交之后,原地等待任务的返回结果,等待的过程中不做任何事(干等着)
2.2 异步
异步指的是,任务提交之后,不原地等待任务的返回结果,等待的过程中去做其他任何事。
问题是提交的结果如何获取?任务的返回结果会有一个异步回调机制自动处理!
3. 阻塞与非阻塞
阻塞与非阻塞描述的是程序的运行状态
阻塞:阻塞态
非阻塞:就绪和运行态
理想状态是,我们应该让我们的程序永远处于就绪和运行状态之间切换。
上述概念的组合:最高效的一种组合就是异步非阻塞!