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).您也可以继承这些以获得所需的行为。