0
スレッドを使用しているPythonスクリプトに問題があります。Python - 単純なスレッドは停止しません
from threading import Thread
def func1():
while True:
print 'Function 1'
def main():
t = Thread(target = func1)
t.start()
for i in xrange(100000):
print 'Main'
t.stop()
print 'End'
if __name__ == '__main__':
main()
私ははCtrl + Cか、その終わりに到達したとき、func1()
を実行しているスレッドが停止することはありませんで、スクリプトを中断するときに問題がある:私は、次のコードに問題があることを模倣することができます。
端末を開くと実行を中断できますが、killall python
です。
私はPythonでスレッドを扱うのは初めてです。私は間違って何をしていますか?
Ctrl + Cはpython2上のスレッドを停止しません。 'Thread(target = func1、daemon = True) 'を使って' t'をデーモンスレッドにすることをお勧めします。 –
これはうまくいきました。 't.dameon = True'とt.start()の前にデーモンにしなければなりませんでした。ありがとう@cᴏʟᴅsᴘᴇᴇᴅ! –
コンストラクタ呼び出し中に初期化できるという印象を受けましたが、それも機能します。 –