我正在编写一个Python函数,该函数对大量对象执行相同的任务。自然,我想并行执行它。我以前使用过multiprocessing
很多次,而且我知道主模块必须有这样的防护装置:
if __name__ == '__main__':
# some code to run in parent process only
区别在于,现在我的函数位于与__main__
不同的模块中,并且我将无法控制谁调用它以及在什么上下文中调用它。因此,我看到了一些问题。
(A)使我的函数的调用者担心将防护放在主模块中(放在正确的位置)似乎有点不礼貌。
(B)我本人打算使用该功能的最常见方法是从Jupyter笔记本中进行。我什至不知道每次产生新进程时都会重新运行什么代码。是整个笔记本吗?以什么顺序?
是的,我在Windows上执行此操作,因此将产生而不是分叉的新进程。
是否有更好的方法来并行化该函数而不必担心所有这些?