私のLinuxC++アプリケーションは、センサーデータを定期的に読み取っています。読み出しは、単純なファイルI / O操作で行われます(OSはファイルに書き込み、アプリケーションはこのファイルから読み取ります)。私のプラットフォームに関するいくつかの情報:
- ハイパースレッディングを備えたシングルコアプロセッサを使用しています
- センサーデータの更新頻度は1秒です
- アプリケーションGUIはメインスレッドで実行されるため、ブロックしないでください
センサーデータを読み取るための2つのアプローチを検討しました。
- メインアプリケーションスレッドで実行されているタイマー
- センサーデータの読み取りを行ってからスリープする無限ループの別のスレッド
どのアプローチがより多くの感覚を生み出しますか、他の選択肢はありますか?両方のソリューションのコストはどれくらいですか(たとえば、最初のアプローチでのメインスレッドのブロック、または2番目のアプローチでのコンテキスト切り替え)?