在Multiprocessing包中使用Process和Pool模块时,我不断遇到_bootstrap方法的引用。
从我看到的内容来看,该方法导入了multiprocessing util.py模块,并使用它的方法(结合其他几个方法)来跟踪、记录和管理子进程。
def _bootstrap(self):
from . import util
global _current_process
try:
self._children = set()
self._counter = itertools.count(1)
try:
sys.stdin.close()
sys.stdin = open(os.devnull)
except (OSError, ValueError):
pass
_current_process = self
util._finalizer_registry.clear()
util._run_after_forkers()
util.info('child process calling self.run()')
try:
self.run()
exitcode = 0
finally:
util._exit_function()
except SystemExit, e:
if not e.args:
exitcode = 1
elif isinstance(e.args[0], int):
exitcode = e.args[0]
else:
sys.stderr.write(str(e.args[0]) + '\n')
sys.stderr.flush()
exitcode = 1
except:
exitcode = 1
import traceback
sys.stderr.write('Process %s:\n' % self.name)
sys.stderr.flush()
traceback.print_exc()
util.info('process exiting with exitcode %d' % exitcode)
return exitcode
我稍微研究了一下"bootstrap"这个术语,并发现它在Python模块中以各种不同的上下文使用,除了可能在参考统计学中测量准确性的过程中(除了Twitter Bootstrap框架之外)。
但在这种情况下,函数名称似乎是指将各种元素绑定在一起的方法?是这样吗?