前提・実現したいこと
5つの関数(メインを含めると6つ)を並列で行いたいです。
CPU情報を調べてみたところ4個のコア、4個のロジカルプロセッサと記載されていて、threadで実装しようとするとスレッド数が足りないように思います。
調べたところmultiprocessingとjoblibというモジュールではスレッドではなくコアで並列処理を行うとなっていたのですが、threadとmultiprocessingかjoblibを同時に行っても問題ないでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
python
1from threading import Thread 2from multiprocessing import Pool 3 4def func_1(): 5 while True: 6 ・・・ # とある処理 7 8def func_2(): 9 while True: 10 ・・・ # とある処理 11 12def func_3(): 13 while True: 14 ・・・ # とある処理 15 16def func_4(): 17 while True: 18 ・・・ # とある処理 19 20def func_5(): 21 while True: 22 ・・・ # とある処理 23 24if name == "__main__": 25 Thread(target=func_1).start() 26 Thread(target=func_2).start() 27 Thread(target=func_3).start() 28 29 pool = Pool(2) 30 pool.apply_async(func_4) 31 pool.apply_async(func_5) 32 33 while True: 34 time.sleep(60)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/09 17:07
2019/02/09 17:25
2019/02/10 03:37
2019/02/10 04:41
2019/02/12 20:26