我正在尝试使用Python中的不同进程,并且在获取特定实例的PID时遇到一些困难。
例如,我在一个类中发送mainCar实例:
warehouse = Warehouse()
mainCar = Car().start()
warehouse.add(mainCar)
在仓库类中,我正在恢复mainCar变量并希望知道它的PID
如何使用mainCar变量获取进程ID?我将这个变量传递给另一个类,这个变量的进程ID与os.getpid()给我的不同。
提前致谢!
答案 0 :(得分:2)
我认为你从根本上误解了正在发生的事情。你的问题仍然没有多大意义,因为对象有没有概念的PID。即使您使用多处理模块生成多个进程并使用队列传递对象,也没有Python函数会告诉您自动创建对象的进程的PID。
您可以在类中添加类似这样的内容来跟踪创建者PID:
class PID_Tracked(object):
def __init__(self)
self.originating_PID = os.getpid()
但除非您手动存储此数据,否则对象与创建它们的进程的PID之间存在零关联。
所有这一切的一个例外是,如果您正在使用多处理模块。该模块中的某些类将提供PID以跟踪生成的进程。但是你的问题中没有任何内容表明你正在使用多处理(此时),所以我已经排除了对它的讨论。