標準のread-eval-printループを使用するプログラムでアラームを実装しようとしています。タイマー割り込みを待機プロセスにする方法は?
while True:
input = get_input() # A function that waits for input and
# returns the input once it is obtained
set_alarm(interpret(input)) # A function that sets the alarm
Set_alarmがthreading.Timerクラスを使用しています。
コードの例は、このようなものになるだろう。しかし、これには1つの問題があります。タイマーは時間の経過とともにアクティブになりますが、get_input()が入力を待っているとき、タイマーはそのプロセスが完了してから必要な出力が得られるまで待機します。
タイマーのコールバック機能が、待機中の機能を中断し、起動後直ちに出力を生成する方法はありますか?
ありがとうございます!
よろしくお願い致します。しかしkhbitはキーストロークの入力にのみ適用されます。 get_input()がスピーチなどの別のフォームの入力を取得するとどうなりますか? – Jian
@ Jian:そうでなければ、処理待ちのスピーチがあったかどうかを判断するために、何らかの非ブロッキング方法を見つける必要があります。 – martineau