バックグラウンド タスクを実行するプロセスを生成するマルチプロセッシング コード (Python 2.6.4、WinXP) を作成しています。いくつかの些細な例で遊んでいると、固定数を生成するように指示しただけなのに、コードが新しいプロセスを継続的に生成するという問題に遭遇しています。
プログラム自体は正常に動作しますが、Windows タスク マネージャーを見ると、新しい 'python.exe' プロセスが表示され続けます。プログラムが実行されるにつれて、それらはますます生成され続けます(最終的には私のマシンを飢えさせます)。
たとえば、
以下のコードは 2 つの python.exe プロセスを起動すると予想します。1 つ目はプログラム自体で、2 つ目はそれが生成する子プロセスです。私が間違っていることは何ですか?
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()