Python 多处理为同一对象提供两个不同的 pid

Python multiprocessing giving two different pid for same object

我正在使用 Windows

import multiprocessing
import os
class BaseModule(multiprocessing.Process):
    def __init__(self):
        print("Initialize time pid: ",os.getpid())
        multiprocessing.Process.__init__(self)
        super().__init__()

    def get_pid(self):
        print("After new process pid: ",os.getpid())

    def run(self):
        self.get_pid()
        
if __name__ == '__main__':
    process = BaseModule()
    process.start()

输出:

Initialize time pid:  22148
After new process pid:  21244

在这里相同的对象得到两个不同的 pid 我需要 完整的对象创建和 运行 在新进程中使用多处理(相同的 pid)?

我找到了一个方法,在这里我使用了一个创建对象的函数。现在我得到了相同的 pid。

import multiprocessing
import os

class BaseModule:
    def __init__(self):
        print("Initialize time pid: ",os.getpid())

    def get_pid(self):
        print("After new process pid: ",os.getpid())

    def run(self):
        self.get_pid()

def use_multiprocessing():
    obj = BaseModule()
    obj.run()

if __name__ == '__main__':
    process = multiprocessing.Process(target=use_multiprocessing)
    process.start()

输出

Initialize time pid:  18240
After new process pid:  18240