[英]multiprocessing in python runs all the jobs at the same time
我有一個函數,希望使用不同的輸入值調用100次。 我有8個處理器,我想同時運行8個作業,一個作業完成后,另一個作業開始。 但是,在下面的腳本中,python同時啟動所有作業,需要更改什么?
global bits
bits = np.zeros(100)
def _multi(bits,idd,some_function):
bits[idd] = some_function(idd)
jobs = []
for i in range(100):
d = multiprocessing.Process(target=_multi,args=(bits,i,some_function))
jobs.append(d)
d.start()
for job in jobs:
job.join()
使用池來設置進程。
import multiprocessing as mp
import operator
import os
def process(func,arg):
pool = mp.Pool(processes=8)
results=[pool.apply_async(func, args=(arg,i)) for i in range(100)]
r=[]
for p in results:
try:
r.append(p.get())
except Exception:
print("error getting process: %s" % os.getpid())
return r
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.