Python 多进程进程池Queue进程通信

Posted zhangdingqu的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 多进程进程池Queue进程通信相关的知识,希望对你有一定的参考价值。

from multiprocessing import Pool,Manager
import time

def hanshu(queue,a):
    n = 1
    while n<50:
        # print(‘
正在工作%d‘%a,end=‘‘)
        n+=1
        # 【步骤3】往队列中发送一条消息
        queue.put(a)
        time.sleep(2)

def main():
    print(执行main函数)
    for i in range(0,10):
        po.apply_async(hanshu,args=(q,i)) # 【步骤2】向进程池中添加任务,hanshu是做任务的函数,(i,)是传参,是个元组 q是队列



if __name__ == __main__:
    q=Manager().Queue() #使用Manager中的Queue方法 【步骤1】创建一个队列
    po = Pool(10) # 创建进程池 并限定最多同时运行10个进程
    main()
    print(---start-----)

    po.close() # 关闭进程池不再接受新的进程任务
    # po.join() #等待进程池里面的任务完成
    while True:
        name=q.get()
        print(
收到消息 与任务不堵塞,name ,end=‘‘)

 

以上是关于Python 多进程进程池Queue进程通信的主要内容,如果未能解决你的问题,请参考以下文章

Python进程间通信进程池协程

python基础之进程间通信进程池协程

Python开发基础--- 进程间通信进程池协程

Python多进程,多线程和异步实例

Python多进程,多线程和异步实例

线程Queue定时器进程池和线程池同步异步