【发布时间】:2013-02-13 23:22:09
【问题描述】:
这段代码启动了无数个进程,随后导致我的电脑崩溃。
import multiprocessing
def f(process_name):
print process_name, 'says hi'
p1 = multiprocessing.Process(None,f,'1',('1st',))
p1.start()
在控制台中,我一遍又一遍地看到“1st say hi”,在任务管理器中,我看到大量解释器正在启动 - 我从 PyDev eclipse 和命令行中运行它 - 结果相同。
我得到的另一个结果是运行了一个 python 解释器(虽然死亡并快速生成另一个解释器),所以我无法在任务管理器中杀死它(句柄无效)。不过它占用了 100% 的处理器。
我习惯了java线程API,模块multiprocessing声称有一个类似于threading模块的接口,是java的一个副本。
为什么进程没有死亡?我缺少什么来简单地让这个产生一个线程,打印这个东西然后消失?
谢谢,你们统治!
【问题讨论】:
-
为什么标题说“线程模块”,为什么是“多线程”标签?您是否在未向我们展示过的地方使用
threading? -
这只是我的失败-谢谢指出。我马上修改
标签: python multithreading multiprocessing