葫芦金刚

导航

Python 多进程(二度回顾)

from multiprocessing import Process,JoinableQueue

#子进程
def shang_pin_xinxi(q,cont):    
    while True:       
        page = q.get()
        print("进程:{0}获取了数据{1}".format(cont,page))
        q.task_done()



#主进程
def producer(q):    
    for j in range(20):
            q.put(j)
            print("{}放入队列".format(j))        
    q.join()



if __name__ == "__main__":
    q = JoinableQueue()

    #开启多进程 
    for i in range(20):
        p1 = Process(target=shang_pin, args=(q, i))
        p1.daemon = True  # 设置为守护进程,在主线程停止时p也停止,但是不用担心,producer内调用q.join保证了consumer已经处理完队列中的所有元素
        p1.start()

    producer(q)

  

posted on 2019-05-21 10:09  葫芦金刚  阅读(180)  评论(0编辑  收藏  举报