进程池间的进程通信

import multiprocessing


def demo1(q):
    # 进程池里面的进程 如果出现异常不会主动抛出 尽量做异常处理
    try:
        q.put('a')
    except Exception as e:
        print(e)


def demo2(q):
    try:
        data = q.get()
        print(data)
    except Exception as e:
        print(e)


if __name__ == '__main__':
    # 进程间通信
    # q = Queue()   # 不能完成进程之前的通信
    # q = multiprocessing.Queue()   # 进程间通信
    q = multiprocessing.Manager().Queue()   # 进程池中的进程通信

    po = multiprocessing.Pool(2)

    po.apply_async(demo1, args=(q,))
    po.apply_async(demo2, args=(q,))

    po.close()

    po.join()

结果:a

发布了35 篇原创文章 · 获赞 0 · 访问量 544

猜你喜欢

转载自blog.csdn.net/weixin_45905671/article/details/104013542