我正在编写一些生成进程以运行后台任务的多处理代码(Python 2.6.4、WinXP)。在玩一些琐碎的例子时,我遇到了一个问题,我的代码只是不断地产生新的进程,即使我只告诉它产生一个固定的数字。
该程序本身运行良好,但如果我查看 Windows 任务管理器,我会不断看到新的“python.exe”进程出现。随着程序的运行(最终使我的机器挨饿),它们只会越来越多地产生。
例如,
我希望下面的代码启动 2 个 python.exe 进程。第一个是程序本身,第二个是它产生的子进程。知道我做错了什么吗?
import time
import multiprocessing
class Agent(multiprocessing.Process):
def __init__(self, i):
multiprocessing.Process.__init__(self)
self.i = i
def run(self):
while True:
print 'hello from %i' % self.i
time.sleep(1)
agent = Agent(1)
agent.start()