我正在尝试创建共享队列,从中获取任务以执行并推送执行。但是,程序不会打印任何内容并以代码 0 退出。
我正在使用 python 3.6 并尝试了我在互联网上找到的所有内容,但它不起作用。也许我错过了什么或者做错了什么。请指出正确的方向。
import multiprocessing as mp
import time
def produce(i, rate, taskQue):
print("+++ Producer:%s +++" % i)
time.sleep(0.01)
for r in range(rate):
taskQue.put(0)
time.sleep(1)
def consume(i, rate, taskQue):
print("--- Consumer:%s ---" % i)
for r in range(rate):
while taskQue.empty():
print("| Consumer:%s ..." % i)
time.sleep(0.5)
time.sleep(0.01)
taskQue.get()
time.sleep(1)
if __name__ == '__main__':
manager = mp.Manager()
taskQue = manager.Queue()
producerDetails = [[1, 5, taskQue], [2, 7, taskQue], [3, 2, taskQue], [4, 3, taskQue]]
producerPool = mp.Pool(processes=5)
produced = producerPool.apply_async(produce, producerDetails)
consumerDetails = [[1, 5, taskQue], [2, 5, taskQue], [3, 3, taskQue], [4, 5, taskQue]]
consumerPool = mp.Pool(processes=5)
consumed = consumerPool.apply_async(consume, consumerDetails)
producerPool.close()
producerPool.join()
consumerPool.close()
consumerPool.join()
一只甜甜圈
相关分类