同步与异步,阻塞与非阻塞1

    xiaoxiao2022-06-28  42

    1.同步与异步

        同步:一个任务需要依赖另一个任务完成是时,只有等待被依赖的任务完成时,依赖任务才算完成。(等待完成,返回结果后,在继续做自己的任务)

        异步:通知被依赖的任务要完成的工作,依赖的任务继续执行,只要自己完成了任务即OK。(通知了即可,继续做自己的。)

        消息通知:被依赖的任务完成之后会进行回调来通知主任务,我已经完成,主任务再处理。(状态,通知,回调)

    2.阻塞与非阻塞

        与等待消息通知的状态有关。

        阻塞:是指等待消息的期间,当前线程一直被挂起,不能做其他的事情。

        非阻塞:是指等待消息的期间,可以进行其他操作。

    3.混合

        同步阻塞:线程在等待当前函数返回中,没有处理任何消息,一直在等待啥都不干(银行排队:一直在排队中,等待)

        同步非阻塞:线程在等待当前函数返回中,仍在处理其他消息。(排队时,接个电话,但是效率低下,行为在切换)

        异步阻塞:等待函数回调的过程中,啥都不干(o(╯□╰)o,等着银行叫号期间啥都不干)不是在处理消息时阻塞,而是在等待消息通知时被阻塞。

        异步非阻塞:被依赖函数回调过程中,处理其他事情。(银行叫我,我打电话。一个主动方是被依赖函数,一个主动方是主程序,所以不存在行为切换,性能好)

       

       

    转载请注明原文地址: https://ju.6miu.com/read-1124561.html

    最新回复(0)