gpt4 book ai didi

Python 多处理不在 Fedora 中创建新进程

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:53 25 4
gpt4 key购买 nike

我正在学习 Python 2.7 中的多处理。我在 Windows 7 和 Fedora 20 中都尝试了以下代码。

代码示例

import multiprocessing
import time

def worker():
name = multiprocessing.current_process().name
print name, 'Starting'
time.sleep(10)
print name, 'Exiting'

if __name__ == '__main__':
worker_1=multiprocessing.Process(target=worker)
worker_2=multiprocessing.Process(target=worker)

worker_1.start()
worker_2.start()

在 Windows-7 中,在任务管理器中我可以看到 3 个 python 进程正在运行。

enter image description here

在 Fedora-20 中 使用命令 top | grep python,我可以看到只有一个 python 进程在运行。

enter image description here

是不是在Linux中,操作系统不允许多处理?

如果多处理程序将像普通程序一样运行,那么为什么人们应该更喜欢 multiprocessing 而不是 Threading

最佳答案

问题不在于 Python,而在于使用 top 命令。默认情况下,top 仅显示适合单个屏幕的进程。当您的工作进程处于 sleep 状态时,它们占用的资源很少并且落后。因此,它们不会作为 grep 的结果出现。

您可以使用 ps aux 命令来验证 worker 是否已创建,或者您可以为 top 使用 -b 选项,用于重定向 top 的输出。

顶部-b | grep python

来自 man top :

-b : Batch mode operation Starts top in 'Batch mode', which could be useful for sending out- put from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit you've set with the '-n' command-line option or until killed.

关于Python 多处理不在 Fedora 中创建新进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28598769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com