Python3っていうか、3.3以降です。
from concurrent.futures import ProcessPoolExecutor import time def work(job): time.sleep(job) print(job) def main(): _jobs = [5, 1, 2] _e = ProcessPoolExecutor(max_workers=2) for _j in _jobs: _e.submit(work, _j) if __name__ == '__main__': main()
簡単なサンプルなんですけど、ワーカー2つ作って並列にworkというメソッドを実行してくれます。
実行すると
$ python sample.py
1
2
5
こんな感じに出力されます。5,1,2って順番で処理投げ込んでるのに1,2,5の順番で終わってます。
Pythonでmultiprocessingを使って並列処理 で書いたサンプルも簡単でしたけど、ProcessPoolExecutor使うともっと簡単です。