Python多处理:比请求的进程多

时间:2015-03-06 17:09:38

标签: python linux python-2.7 multiprocessing

当我只使用1个核心时,为什么我会看到这么多python进程(在htop RHEL 6上)运行相同的脚本?

enter image description here

对于每个任务,我初始化一个管理处理的工人类。它确实初始化其他类,但不是任何子进程:

    tasks = multiprocessing.JoinableQueue()
    results = multiprocessing.Queue()

    num_consumers = 1

    consumers = [Consumer(tasks, results) for i in xrange(num_consumers)]
    for i, consumer in enumerate(consumers):
        logger.debug('Starting consumer %s (%i/%i)' % (consumer.name, i + 1, num_consumers))
        consumer.start()

注意,atop显示预期的进程数(在这种情况下,父进程为2:1,子进程为1)。 %MEM通常总计超过100%,所以我收集到了,我误解了多处理或htop如何工作。

1 个答案:

答案 0 :(得分:0)

我相信你看到你的应用程序主pid中的Multiprocessing模块会旋转出辅助线程。这些是您明确旋转的线程/进程的补充。