2

setitimer を使用して 3 つ以上のタイマーを構成するにはどうすればよいですか? Linuxのマニュアルページには、「システムは各プロセスに3つのインターバルタイマーを提供し、それぞれが個別の時間ドメインで減少します。タイマーが期限切れになると、シグナルがプロセスに送信され、タイマーが(潜在的に)再起動します」.

4

3 に答える 3

2

itimer メカニズムでは 3 つに制限されています。timerfd_create()この制限がない、より最新の代替品 (Linux のみではありますが) を参照してください。また、シグナルの代わりにファイル記述子でも機能するため、select/poll で実装されたイベント ループとより簡単に統合できます。

于 2012-07-01T21:45:52.713 に答える
2

Linux はtimer_create(2.6 以降) 新しいインターバル タイマーを作成するために提供しています: http://www.kernel.org/doc/man-pages/online/pages/man2/timer_create.2.html

基本的なタイマーしかないシステムを使用している場合は、ユーザー作成のライブラリーでいつでも独自のタイマーを作成できます。

timerfd_create(Linux固有のものも)あります。

于 2012-07-01T21:48:18.320 に答える
0

単一のタイマーのチェックを使用して、modそれを多くのタイマーに抽象化します。これは、Googleがjavascriptで複数のタイマーを処理する方法であり、ここでも機能すると思います。その理由は、複数のタイマーを連続して実行するよりも桁違いに高速だからです。

言い換えれば、5 ミリ秒ごとに実行されるタイマーがあり、それが実行された回数のカウントがある場合mod、そのカウントが可能であり、そのうちの 10 回ごとに 50 ミリ秒のタイマーも同様になります。

于 2012-07-01T21:48:39.123 に答える