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
我正在使用 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