同步、异步
同步、异步指的是任务的提交方式。
简言之
-
同步是只要发起了调用,必须等待调用完成,明确的获得到调用结果,才可以继续执行。比如我想喝水,自己去买水,就必须买完水回来后才可以继续工作
-
异步是,发起调用后,代码继续往下执行,不用等待结果。
比如:我托小明去买水,在此期间,我可以继续工作
并发、并行
并发、并行指的是任务的处理方式
- 并发是指处理单元在多个不同进程之间快速切换,由于人类感觉不出来切换的间隔,看起来像是都在执行。例如:我们可以听音乐的同时打游戏,可以同时打开几个应用。
- 并行是具有多个处理单元在处理多个进程,是真正意义上的同时在执行
并发就是一台咖啡机,若干个队排队
并行就是两个或两个以上咖啡机再工作,若干个队排队。
阻塞、非阻塞
阻塞、非阻塞描述的是进程的状态
当开启了一个进程,操作系统不一定有空,首先会进入就绪状态然后cpu有空了,就会转入运行状态,如果超过间隔了就又会进入就绪状态再进入运行状态,如此切换。如果运行过程中遇到了IO操作,会进入阻塞状态
其中就绪和运行时属于非阻塞状态