我正在学习Python2.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()在任务管理器中的Windows7中,我能够看到3个进程正在运行。

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

是因为Linux操作系统不允许多进程处理吗?
如果一个多处理程序将像普通程序一样运行,那么为什么人们更喜欢multiprocessing而不是Threading?
发布于 2015-02-19 05:30:39
问题不在于Python,而在于top命令的使用。默认情况下,top只显示安装在单个屏幕中的进程。当您的工作流程处于睡眠状态时,它们占用的资源较少,并且落后。因此,它们不作为grep的结果出现。
您可以使用ps aux命令来验证是否创建了工作人员,也可以使用用于重定向top输出的top的-b选项。
top -b | grep python
来自人顶
-b :批处理模式操作以“批处理模式”启动,这对于从顶部发送到其他程序或文件可能很有用。在这种模式下,top将不接受输入并运行,直到使用'-n‘命令行选项设置的迭代限制或直到终止为止。
https://stackoverflow.com/questions/28598769
复制相似问题