我在 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()
编辑:
我在测试第三版时遇到了这个错误。知道是什么原因造成的吗?
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