簡體   English   中英

python中的多處理可同時運行所有作業

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM