1
我有一個需要大約10秒才能運行的進程。下面的函數將需要大約100秒十個標題條目:使用python並行處理函數
for title in titles_to_update:
run_update_procedure(title)
這將是並行此過程的最佳方法。
pool = Pool(2)
pool.map(run_update_procedure, list(titles_to_update))
是最好的方法去做到這一點?
並行處理不能保證加快你的代碼。什麼是瓶頸?中央處理器? IO?等待資源? etc。 – alko
實際的'run_update_procedure()'是一個需要大約20秒才能完成的API調用 - 基本上我們只是在等待他們的API來處理請求並給我們提供我們需要的東西。 – David542
如果它是CPU綁定的,那麼通過指定比CPU核心更多的進程可能沒有什麼可以獲得的。無論如何,你需要一個Pool「map」函數來將工作分散到所有進程中。 'apply_async()'將把整個列表傳遞給一個進程。試試吧! ;-) –