1.1 概念
1.1.1 异步和同步
同步:调用目标对象,目标对象在任务执完之前,不返回消息;
异步:和同步相对;调用目标对象后,调用目标立刻返回消息,调用者可以去之前其他处理;等调用目标执行结束后,将执行结果以消息回调、状态设置等方式方式反馈给调用者;
【总结】核心点在于,调用目标对象 是否等待任务执行结束,返回消息给调用者;
1.1.2 并发和并行
并行:在多核系统里,可以实现多个任务统一时刻发生,真正的同时执行;
并发:假设在单核系统里,多个任务派发给内核执行,在同一时间段内,内存同过时间片的调度处理,交替执行多个任务,本质为串行,变现为好像在通知执行;
【总结】核心点在于,任务是在同一时刻执行,还是在同一时间段内同时执行;
1.1.3 阻塞和非阻塞
阻塞:调用者调用调用目标对象,一直等到任务执行完成,拿到结果,再去执行下一个任务;
非阻塞:调用者调用目标对象,不需要等到目标对象任务执行完成,先去执行其他任务,等调用目标执行结束后,将调用结果通知给调用者;
【总结】核心点在于,调用者是否等待调用目标对象执行结束,拿到结果后,才执行其他任务;
1.2 应用
阻塞和非阻塞,异步和同步,两对概念的区别点在于分别关注于调用者和调用目标;
可以划分为以下场景:
1、同步阻塞
2、同步非阻塞
3、异步阻塞
4、异步非阻塞