我想運行一個並行循環(免責聲明:我是新來的並行處理,這可能是一個非常愚蠢的問題)。 本質上,我希望能夠在並行函數內啓動和終止循環,並且能夠不時檢查其狀態。python並行循環:與外部通信
我試着編寫一個非常基本的例子(見下文),使用多進程Process和Queue,其中子函數啓動並開始循環。在每次迭代時,它會向隊列中添加一個值,以便將其傳遞到外部。但是,我從隊列中獲得的值是由於我詢問queue.get()的次數而產生的。
運行代碼,問題可能會更有意義。 另類和簡單的做法非常讚賞。
import time
from multiprocessing import Process, Queue
def f(q):
z = 0
while True:
z = z+1
print 'z', z
q.put(['f is at z value {}'.format(z)])
time.sleep(float(0.1))
if __name__ == '__main__':
queue = Queue()
process = Process(target=f, args=(queue,))
process.start()
print 'start with z value:'
print queue.get()
time.sleep(1)
print 'now f is at z value:'
print queue.get()
time.sleep(1)
print 'terminating with z value:'
print queue.get()
process.terminate()