看板 Python 關於我們 聯絡資訊
※ 引述《Pettitte1 (低調奢華有內涵)》之銘言: : 是這樣的 目前已經會用 multiprocessing.pool 來取得結果 : 範例 code 如下 : https://paste.ee/p/DY72q : 我可以在 if __name__ == '__main__': 之後取得我要的 data "d" : 如果我後續想要對 d 進行其他各種運算 : 是否就只能在 if __name__ == '__main__': 縮排內進行各種動作? : 能夠不用 if __name__ == '__main__': : 就直接 run m() 這個 function 嗎? 可以考慮 concurrent.futures 應該算python新推的併行處理庫 用意就是取代multiprocessing 封裝成更高階API使用上更便利 改了一下 不用 if __name__ == '__main__' 也能跑 https://paste.ee/p/5vjuQ 不過這是創 thread 不是 process 如果一定要process 那就沒辦法了 另外 ThreadPoolExecutor() 裡面能塞你要創幾個threads 像是 ThreadPoolExecutor(max_workers=50) 就是 python 要求建議 3.7 以上 以上 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.15.47.71 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1669896389.A.44D.html
chang1248w: 這樣用thread有繞開硬件鎖? 12/01 20:13
跟 multiprocessing 一樣 threads沒有 但 process 有 不過我實際跑任務也是會平均分配給CPU 不確定GIL影響範圍 ※ 編輯: surimodo (39.15.47.71 臺灣), 12/01/2022 20:21:32
Pettitte1: 感謝回覆 是可以用的 12/02 21:05
Pettitte1: 不過時間反而變長了 應該也是跟Threading一樣的問題 12/02 21:22