import multiprocessing
import time
class testM(multiprocessing.Process):
def __init__(self):
multiprocessing.Process.__init__(self)
self.exit = False
def run(self):
while not self.exit:
pass
print "You exited!"
return
def shutdown(self):
self.exit = True
print "SHUTDOWN initiated"
def dostuff(self):
print "haha", self.exit
a = testM()
a.start()
time.sleep(3)
a.shutdown()
time.sleep(3)
print a.is_alive()
a.dostuff()
exit()
私はちょうど上記のコードが実際に「あなたが辞めた」とはプリントされないのだろうと思っています。私は間違って何をしていますか?もしそうなら、誰かが正常に終了する正しい方法を私に指摘するかもしれませんか? (私はprocess.terminateまたはkillを参照していません)Pythonマルチプロセッシングは優雅にどのように終了しますか?
実は、このすべてのコードが、あなたを与える必要があります。
は、次のコードを試してみてください。言い換えれば、おそらく最後の8行を控えたいと思うでしょう。 – balpha
注:メインスクリプトコードをガード句で保護していないため、このサンプルコードはwin32で失敗します。 'if __name__ ==" __main__ ":... – jkp