Python41_异步与回调函数

  • 同步就是你喊你朋友吃饭,你朋友忙,你就一直在那里等,等你朋友忙完了,你们一起去
  • 异步就是你喊你朋友吃饭,你朋友说知道了,待会忙完去找你,你就去做别的了

代码示例:

from multiprocessing import Pool
import time,os

def test():
    print("---进程池中的进程---pid = {}, ppid = {}".format(os.getpid(), os.getppid()))
    for i in range(3):
        print("---{}---".format(i))
        time.sleep(1)
    return "hahaha" #当子线程执行到这里的时候,可以认为子进程的生命结束了,
    # 当子进程生命结束的时候,父进程就会去执行回调函数
    #并将进程的返回值作为回调函数的参数

def test2(args):
    print("---callback func--pid = {}".format(os.getpid()))
    print("---callback func--args = {}".format(args))

if __name__ == '__main__':
    pool = Pool(3)
    pool.apply_async(func=test, callback=test2) #callback:回调

    time.sleep(5)   #本来父进程有事情正在干(睡觉),但是发现子进程执行完后,
    #父进程转而去执行回调函数,然后回来继续做自己的事情

    print("---主进程-pid = {}".format(os.getpid()))

'''运行结果:
---进程池中的进程---pid = 8724, ppid = 14720
---0---
---1---
---2---
---callback func--pid = 14720
---callback func--args = hahaha
---主进程-pid = 14720
'''

异步的好处:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值