Я пишу некоторый многопроцессорный код (Python 2.6.4, WinXP), который порождает процессы для запуска фоновых задач. Работая с некоторыми тривиальными примерами, я сталкиваюсь с проблемой, когда мой код просто непрерывно порождает новые процессы, даже если я говорю ему только порождать фиксированное число.
Сама программа работает нормально, но если я смотрю в Windows TaskManager, я вижу, что появляются новые процессы '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()