Я пишу многопроцессорный код (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()