私にはブロッキングキューがあり、ワーカーはそのキューから取得して、約1〜10ミリ秒間作業しています。
特定の時間枠でワーカーがアクティブでアイドル状態だった時間の相対的な数値を把握したいと思います(たとえば、直前に70%がアクティブでした)。
短い1msの期間を合計すると、不正確になる可能性があり、nano時間をフェッチすると多くのパフォーマンスが消費されます。
そのようなタスクを実行するためのいくつかのきちんとした方法はありますか?
これらのキューワーカーの設定はコードで頻繁に行われるため、実行時にボトルネックのプロファイルを作成できるようにしたいと思います。
編集:スレッドが機能しているかどうかだけを知りたいです。OSがスレッドを処理フォーカスから外した場合でも、カウントされます。キューロックを待機している場合のみ、アイドル時間としてカウントする必要があります。