1.同步与异步
同步:一个任务需要依赖另一个任务完成是时,只有等待被依赖的任务完成时,依赖任务才算完成。(等待完成,返回结果后,在继续做自己的任务)
异步:通知被依赖的任务要完成的工作,依赖的任务继续执行,只要自己完成了任务即OK。(通知了即可,继续做自己的。)
消息通知:被依赖的任务完成之后会进行回调来通知主任务,我已经完成,主任务再处理。(状态,通知,回调)
2.阻塞与非阻塞
与等待消息通知的状态有关。
阻塞:是指等待消息的期间,当前线程一直被挂起,不能做其他的事情。
非阻塞:是指等待消息的期间,可以进行其他操作。
3.混合
同步阻塞:线程在等待当前函数返回中,没有处理任何消息,一直在等待啥都不干(银行排队:一直在排队中,等待)
同步非阻塞:线程在等待当前函数返回中,仍在处理其他消息。(排队时,接个电话,但是效率低下,行为在切换)
异步阻塞:等待函数回调的过程中,啥都不干(o(╯□╰)o,等着银行叫号期间啥都不干)不是在处理消息时阻塞,而是在等待消息通知时被阻塞。
异步非阻塞:被依赖函数回调过程中,处理其他事情。(银行叫我,我打电话。一个主动方是被依赖函数,一个主动方是主程序,所以不存在行为切换,性能好)
转载请注明原文地址: https://ju.6miu.com/read-1124561.html