実現したいこと
並列に複数実行しているwhileループを ctrl+Cキーあるいは別のキーを入力すると停止するようにしたい
また、GPIOモジュールを使っているので 停止後に GPIO.cleanup() を実行したい
前提
whileループの入った複数のdef関数を threadingで同時に実行したいのですが
止め方がわかりません
処理すべてを一度に停止して、その後 GPIO.cleanup() を実行する方法を教えてください
該当のソースコード
python
1def loop_1 (): 2 while True: 3 ###省略 4 5def loop_2 (): 6 while True: 7 ###省略 8 9if __name__ == "__main__": 10 thread_1 = threading.Thread(target=loop_1) 11 thread_2 = threading.Thread(target=loop_2) 12 13 thread_1.start() 14 thread_2.start() 15
試したこと
python
1def loop_1 (): 2 while True: 3 try: 4 except KeyboardInterrupt: 5 break 6
KeyboardInterruptを実行しても
処理が続行してしまいます
補足情報(FW/ツールのバージョンなど)
環境 raspberrypi4bからThonny Python IDEで実行
(私はまだclassを理解できていないので
出来れば 使わないやりかたでお願いします)
どちらも簡単ですが、KeyboardInterruptを受け取る方法と、スレッドを停止する方法はそれぞれ別の質問にすべきです。
それぞれ出来るようになってから、組み合わせを考えましょう。

回答4件
あなたの回答
tips
プレビュー