threading.Threadの使い方

[`evernote` not found]
Bookmark this on Hatena Bookmark
Share on Facebook
LINEで送る

よく忘れるので.
docoptは入れて使ってくらはい.他のはanaconda3-4.4.0で入ったと思う.

この記事は次の記事を参考にしている.
実行中のスレッドに対し外から操作をする - Qiita
ただし,私はスクリプトの外から操作をしたかったので,イベントハンドラから呼んでみた.
あと終了処理を入れたかったので無駄に関数を作って呼び出し順などを確認できるようにしてみた.
withは使ってないからenterとexitはいらんかった.

__file__ を test.pid で一括置換した名残が何か残ってるけど気にせんとってください.(abspathとかdirnameとかbasenameとかんとこ)

# スレッドを3つ開始
# 1つはインスタンスで生成
# 2つはサブクラスで生成
# サブクラスの1つは自動的に3秒後に停止
$ python start.py
# SIGUSR1を送信してサブクラスのもう一つを停止
$ kill -USR1 $(cat test.pid)
# 停止スクリプトから停止
$ python stop.py