こちらのサイトのようにインスタンスメソッドに対してmultiprocessing.Poolは使えないという記事がたくさんありました。しかし自分の環境においては以下のように何故か使えています。
これは記事が古くてすでに改善されたのでしょうか?そのような記事を探しても見つかりませんでした。
python
1from multiprocessing import Pool 2import random 3import time 4 5class C: 6 def f(self, name): 7 n = random.randint(1, 5) 8 print(name) 9 time.sleep(n) 10 print("sleep: %ds"%n) 11 12 def run(self): 13 pool = Pool(processes=8) 14 pool.map(self.f, [1, 2, 3, 4]) 15 16if __name__ == '__main__': 17 c = C() 18 c.run()
shell
1$ python test.py 21 32 43 54 6sleep: 1s 7sleep: 2s 8sleep: 3s 9sleep: 4s 10$ python test.py 111 122 133 144 15sleep: 1s 16sleep: 4s 17sleep: 4s 18sleep: 4s
###開発環境
MacOS HighSierra 10.13.6
Python 3.6.5
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/01 08:38 編集
2018/11/01 08:50
2018/11/01 09:06 編集
2018/11/01 09:43
2018/11/29 05:06