码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-10-22 15:00:11      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:queue   pytho   join()   任务   syn   函数   proc   __name__   完成   

from multiprocessing import Pool,Manager
import time

def hanshu(queue,a):
    n = 1
    while n<50:
        # print(‘\r正在工作%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(\r收到消息 与任务不堵塞,name ,end=‘‘)

 

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

标签:queue   pytho   join()   任务   syn   函数   proc   __name__   完成   

原文地址:https://www.cnblogs.com/zhangdingqu/p/9829495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!