我想了解爲什麼第二個函數沒有被調用,你不能使用while循環與多處理?如果有人有任何建議,將不勝感激!使用While循環的Python多處理?
import multiprocessing
import time
from multiprocessing import Pool
def func_ONE(data):
while True:
print 'Func ONE'
print str(data)
time.sleep(10)
def func_TWO(data):
while True:
print 'Func TWO'
print str(data)
time.sleep(10)
def worker(params):
param1, param2 = params
if param1:
func_ONE(param1)
if param2:
func_TWO(param2)
data1 = 'bob'
data2 = 'joe'
if __name__ == '__main__':
params = zip([data1], [data2])
pool = multiprocessing.Pool()
results = pool.map(worker, params)
對於'multiprocessing.Process'實例(worker)共享的'multiprocessing.Queue()',可能比使用'Pool'更容易(至少對我來說)。但這取決於你想要什麼。爲什麼在func_ONE之後必須有func_TWO?如果'func_ONE'具有'while'而沒有'break',則func_TWO將永遠不會被調用。這與多處理無關。您是否想要使用多個CPU核心同時處理func_ONE和func_TWO,而不是按順序處理? – otterb
我希望能夠通過工作函數傳遞的參數同時運行func_ONE和func_TWO(兩者都循環)。希望是有道理的!謝謝:) – antfuentes87