タグ

ブックマーク / proger.blog10.fc2.com (1)

  • 職業としてのプログラミング 時間処理の落とし穴 - 時間精度とtick

    「旦那様、旦那様、起きて下さいませ。睡眠薬を飲む時間です」 マルチメディア関連のソフトウェアやデバイスドライバ、組み込み系のようなリアルタイム処理が必要なプログラム等を書いていると、タイミング制御や経過時間の取得等、時間に関する処理が必要になってきます。時間処理については、正しく理解していないと陥りがちな落とし穴がいくつかありますので、今回はそのあたりについて書いておこうと思います。 sleep系関数の精度と挙動 一定時間ごとの周期処理や、リソース競合時の遅延リトライ。そんな時に用いられるのがsleep系関数(sleep/usleep/nanosleep)です。一定時間呼び出しスレッドを停止させる関数(システムコール)であり、sleepなら秒、usleepならマイクロ秒(1/1000000秒)、nanosleepならナノ秒精度(1/1000000000秒)の指定が可能になっています。 しか

  • 1