私たちはイベントタイマーを扱うAPIを持っています。このAPIは、OSコールバックを使用して、(select()を使用して)明らかにタイムアウトしたイベントを処理することを示しています。UnixのC++タイマー
APIの主張は、同様の実行順: 読めるイベント 書き込み可能なイベント タイマーイベント
これは、Timerオブジェクトへのポイントを作成しますが、作成関数に関数コールバックを渡すことによって動作します。
これらの線に沿って何か:
Timer* theTimer = Timer::Event::create(timeInterval,&Thisclass::FunctionName);
私はこれが働いたか不思議でしたか?
オペレーティングシステムがタイマー自体を処理していて、起動されたときに実際にコールバックを呼び出す方法は?コールバックは別々の実行スレッドで実行されますか?
コールバック関数(Thisclass :: FunctionName)の中にpthread_self()呼び出しを置くと、theTimer自体が作成されたスレッドと同じスレッドIDを持つように見えます! (非常に混乱している)
また、上記の優先度リストはどういう意味ですか?書き込み可能なイベントと読み取り可能なイベントとタイマーイベントは何ですか?
このシナリオでのselect()の使用についての説明もありがたいです。
ありがとうございます!
問題のAPIのドキュメントへのリンクは参考になります。それが社内のものであれば、ソースコードを読んでください。これを実装する方法はいくつでもあります。 – bdonlan