PythonのThreadをまとめて止める
- 2020.12.13
- Python
Pythonのスレッドを止めたいとき、Ctrl+cでは止まらず、少し工夫する必要があったので備忘録として残します。
目次
プログラム
ループを同時に回したい場合に、while文にbool型のフラグを使用して、メインのループでCtrl+cを検出した時に、そのフラグをFalseにしています。これでスレッドがまとめて終了します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import time import threading import sys flag=True def loop1(): global flag while flag: print ("1") time.sleep(1) def loop2(): global flag while flag: print ("2") time.sleep(1) def close(): try: while True: time.sleep(1) except KeyboardInterrupt: flag=False sys.exit thread1=threading.Thread(target=loop1) thread2=threading.Thread(target=loop2) thread1.setDaemon(True) thread2.setDaemon(True) thread1.start() thread2.start() close() |
-
前の記事
Unity(Windows)からRaspberry Piへデータ送信 2020.12.13
-
次の記事
UnityとRaspberry PiをROSで繋ぐ 2020.12.19