Python3:产卵过程子类
Python 3: Spawning Process Subclasses
我们可以使用创建的上下文创建具有 Python 3 的 multiprocessing
的非分叉进程:
ctx = multiprocessing.get_context('spawn')
p = ctx.Process(target=foo, args=(42,))
p.start()
但假设我正在使用 Process
的子类。有没有办法使用 fork
以外的方法创建 Process
子类实例?
继承自ctx.Process
:
ctx = multiprocessing.get_context('spawn')
class CustomProcess(ctx.Process):
# define methods
@Daniel 接受的答案非常好(并且可能更惯用),但还要注意,您可以在 multiprocessing 模块的更深处找到 Process
的适当上下文子类(例如 multiprocessing.context.SpawnProcess
).您也可以继承这些以获得所需的行为。
我们可以使用创建的上下文创建具有 Python 3 的 multiprocessing
的非分叉进程:
ctx = multiprocessing.get_context('spawn')
p = ctx.Process(target=foo, args=(42,))
p.start()
但假设我正在使用 Process
的子类。有没有办法使用 fork
以外的方法创建 Process
子类实例?
继承自ctx.Process
:
ctx = multiprocessing.get_context('spawn')
class CustomProcess(ctx.Process):
# define methods
@Daniel 接受的答案非常好(并且可能更惯用),但还要注意,您可以在 multiprocessing 模块的更深处找到 Process
的适当上下文子类(例如 multiprocessing.context.SpawnProcess
).您也可以继承这些以获得所需的行为。