同步异步阻塞非阻塞区别

同步和异步

  • 定义:描述的是程序的提交方式(消息的通信机制)
  • 区别:
    • 同步:任务提交之后,原地等待任务的返回结果,等待的过程中不做任何事,也就是等待结果之后才能继续往后执行
    • 异步:任务提交之后,不再等待任务,继续完成其他的任务,等待任务的返回结果后,任务的返回结果会有异步回调函数来提醒调用者
    def func()
    time.sleep(3)
    print("任务已提交")
    
    res = func() #同步执行
    print("执行")
    
    在上面的代码中我们可以看到,程序运行时会先调用函数,在函数执行完毕之后,再去执行下面的代码,结果应该是3秒之后再执行print代码,如果是异步执行,调用之后,直接就执行print代码

阻塞和非阻塞

  • 定义:程序在等待调用结果(消息,返回值)时的状态
  • 区别:
    • 阻塞:调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回

    • 非阻塞:在不能立刻得到结果之前,该调用不会阻塞当前线程。

假如一个公司去招聘,我去面试,面试官让我回家等结果,会发生以下几种状况
同步和异步在于我,阻塞和非阻塞在于面试官
1.同步阻塞:我在公司通道等待面试官结果,不告诉结果的时候我不能干别的事,我面试官也不能进行其他面试
2.同步非阻塞:我在公司等消息,不告诉我结果,面试官也可以告诉我消息
3.异步阻塞:我在公司通道玩手机,睡觉,吃饭,但是面试官不能进行其他面试
4.异步非阻塞:我在家玩手机,睡觉,吃饭,等面试官电话通知,面试官可以进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值