我想創建一個腳本克隆存儲庫,然後刪除本地回購的寫訪問。我有一個存儲repo對象的列表,我遍歷這個列表來克隆和鎖定repo。多處理for循環
我試着用multiprocessing
加快這一任務,但它似乎確實有放緩下來......
def install():
os.chdir(ROOT_DIR)
if os.path.isdir("./repos"):
for repo in getRepos():
os.chdir(ROOT_DIR)
#Process(target=repo.clone()).start()
#Process(target=lock, args=(repo,)).start()
repo.clone()
lock(repo)
else:
os.mkdir("./repos")
install()
兩個註釋行是我試圖創建subproccesses。我使用這個錯誤嗎?
子處理我的平均執行時間是:5.8秒 沒有子處理,我的平均執行時間是:4.5秒。
你在每次循環迭代創建進程,每個進程將只在一個回購工作。你想理想地委派一個小組來處理他們的一大塊。下面的答案爲你解決了這個問題,但沒有解釋它的作用。 –