私は Python 内でのマルチプロセッシングについて歯を食いしばっていますが、この件について頭を抱えているわけではありません。基本的に、実行に時間がかかる手順があります。1 から 100 の範囲で実行する必要がありますが、探している条件が満たされたら、すべてのプロセスを中止したいと思います。条件は戻り値== 90です。
これは、非マルチプロセスのコード チャンクです。「90」の条件が満たされると、コードがすべてのプロセスを終了するマルチプロセス関数に変換する方法の例を誰か教えてもらえますか?
def Addsomething(i):
SumOfSomething = i + 1
return SumOfSomething
def RunMyProcess():
for i in range(100):
Something = Addsomething(i)
print Something
return
if __name__ == "__main__":
RunMyProcess()
編集:
3 番目のバージョンのテスト中にこのエラーが発生しました。これの原因は何ですか?
Exception in thread Thread-3:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 554, in __bootstrap_inner
self.run()
File "C:\Python27\lib\threading.py", line 507, in run
self.__target(*self.__args, **self.__kwargs)
File "C:\Python27\lib\multiprocessing\pool.py", line 379, in _handle_results
cache[job]._set(i, obj)
File "C:\Python27\lib\multiprocessing\pool.py", line 527, in _set
self._callback(self._value)
File "N:\PV\_Proposals\2013\ESS - Clear Sky\01-CODE\MultiTest3.py", line 20, in check_result
pool.terminate()
File "C:\Python27\lib\multiprocessing\pool.py", line 423, in terminate
self._terminate()
File "C:\Python27\lib\multiprocessing\util.py", line 200, in __call__
res = self._callback(*self._args, **self._kwargs)
File "C:\Python27\lib\multiprocessing\pool.py", line 476, in _terminate_pool
result_handler.join(1e100)
File "C:\Python27\lib\threading.py", line 657, in join
raise RuntimeError("cannot join current thread")
RuntimeError: cannot join current thread