【发布时间】:2021-04-19 22:23:29
【问题描述】:
我有一个小例子来解决我的问题:
from multiprocessing import Process, Queue
def test_1(q,j):
for i in range(10):
q.put('test_{}: '.format(j) + str(i),block=False)
q = Queue()
p1 = Process(target=test_1, args=(q,1))
p2 = Process(target=test_1, args=(q,2))
p1.start()
p2.start()
with open('test1.txt', 'w') as file:
while p1.is_alive() or p2.is_alive() or not q.empty():
try:
value = q.get(timeout = 1)
file.write(value + '\n')
except Exception as qe:
print("Empty Queue or dead process")
p1.join()
p2.join()
那么我的输出是这样的:
test_1: 0
test_1: 1
test_1: 2
test_1: 3
test_1: 4
test_1: 5
test_1: 6
test_1: 7
test_1: 8
test_1: 9
test_2: 0
test_2: 1
test_2: 2
test_2: 3
test_2: 4
test_2: 5
test_2: 6
test_2: 7
test_2: 8
test_2: 9
我怎样才能得到这样的输出:
test_1: 0
test_2: 0
test_1: 1
test_2: 1
test_1: 2
test_2: 2
.
.
.
等等。
如果有人可以帮助我,那就太好了。
出于您的兴趣,我想稍后使用它来匹配输入和输出向量作为机器学习方法的训练数据。
提前致谢,
亚兹
【问题讨论】:
标签: python multiprocessing queue python-multiprocessing python-multithreading