人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

プロセスをミリ秒単位で停止する方法をsleep,usleep,nanosleepを用いる方法以外で教えてください.
プラットホームはLinuxです.


●質問者:
●カテゴリ:コンピュータ
✍キーワード:Linux プラットホーム プロセス ミリ 単位
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● zzz_1980
●35ポイント

Debian etch + Linux-2.6.18 (i386)ベースで

pthread_cond_wait()で待っているスレッドに対して、割り込みスレッドからpthread_cond_signal()で signal を投げる、

という実装例です。

http://kenmemo.blogspot.com/2007/01/linux-real-time-timer.html


2 ● POPO
●35ポイント

selectシステムコールで書けます

1msec寝かせたければ。

struct timeval tv;

tv.tv_sec = 0;

tv.tv_usec = 1000;

select(0, NULL, NULL, NULL, &tv);

下記を参照してください。

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/select_tut.2.h...

ただし他のプロセスも同時に動作している状態では正確に1msで起きるかはわかりません。

(最低1ms以上寝ると考えるべき)

なるべく正確に1ms精度で起こしたければ、sched_setschduler()でリアルタイム

スケジューリングに設定する必要があるかもしれません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ