我写了一个multiprocessing.Process
的子类,并在__init__
函数中打开了一个写访问文件句柄(也在earlier question中描述):
class ProcessChild(multiprocessing.Process):
def __init__(self, file_name):
Process.__init__(self)
self.f = open(file_name, 'w')
def run():
while True:
# write to file.
# when done, close file.
# break
我注意到在我的python脚本终止期间文件被删除了。我唯一的解释是在终止期间再次调用__init__
函数,导致现有文件file_name
被新的空文件覆盖。如果我在run()
函数的开头打开文件,一切正常。
有人可以解释当使用Processes
的脚本终止时会发生什么?