1 同步与异步
首先来解释同步和异步的概念,这两个概念与消息的通知机制有关。也就是同步与异步主要是从消息通知机制角度来说的。
1.1 概念描述
所谓同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列
。要么成功都成功,失败都失败,两个任务的状态可以保持一致。
所谓异步是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了
。至于被依赖的任务最终是否真正完成,依赖它的任务无法确定,
所以它是不可靠的任务序列
。
1.2 消息通知
异步的概念和同步相对
。当一个同步调用发出后,
调用者要一直等待返回消息(结果)通知后
,才能进行后续的执行;当一个异步过程调用发出后,调用者不能立刻得到返回消息(结果)。
实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者
。
这里提到执行部件和调用者通过三种途径返回结果:
状态、通知和回调
。使用哪一种通知机制,
依赖于执行部件的实现
,除非执行部件提供多种选择,
否则不受调用者控制
。
- 如果执行部件用状态来通知,那么调用者就需要每隔一定时间检查一次,效率就很低(有些初学多线程编程的人,总喜欢