「一定間隔で」処理をしたいときにどうしたらいいのかちょっと迷ったのでメモ。 センサの読み出しとか、だいたい1秒間隔で呼び出せてればいい場合は、以下のような感じで書かれてることが多い気がする。 import time def task(): print(time.time()) while True: task() time.sleep(1) ただこれだと、 実行間隔 = task()の実行時間 + time.sleep()の呼び出しにかかる時間 + 1秒 になってしまう。 これだと精度云々の前に「一定間隔」ではない。 ロボットの制御とか音ゲー的なもので、正確に(と言ってもtimer.sleep()の精度と同じくOSのスケジューラの精度以上にはならないのだが)に100msec間隔で関数を呼び出したい。どうしたらいいのか。 システムコールとシグナルを使って、OSに一定間隔で呼び出してもらうこと