Python多处理过程PID与实际PID不同

时间:2015-05-03 22:57:40

标签: python pid python-multiprocessing

这是我的代码。我正在尝试创建n(= 10个)进程,并试图查看他们的PIDS。当我打印它们并验证终端中的PID时,它们是不一样的。编辑:如果有帮助的话,我在Mac(Yosemite)上运行它。

for proc in xrange(10):
        worker_process = Process (name="worker_process", target=worker_code, args=(proc, tree_space, self.simulator, mgr_nms))
        process_q.append(worker_process)
        worker_process.start()
        print worker_process.pid

我的输出:

60484
60485
60486
60487
60488
60489
60490
60491
60493
60494

终端输出(上):

(IMAGE) - > http://postimg.org/image/kkiboom6l/

关于这是为什么的任何指示? (对不起,如果我错过了一些如此明显的东西。)

1 个答案:

答案 0 :(得分:0)

我在屏幕截图中看到两个PPID(父PID' s):60480和60481(最右侧)。

您确定没有两次运行程序吗?屏幕截图已被截断,但如果您确实运行了两次代码,我猜你会看到20个Python进程。

我已经从该截图中总共计算了14个Python进程,其中最多应该有11个。

修改

实际上,60481的PPID是60480.所以看起来你运行这个程序一次,但是产生的过程(使用Process())早于你在这里提供的代码。这很可能是您问题的根源。