アプリケーションが持つスレッドの数を調べると、すべての答えにはtop
のような外部プログラムが関係します。アプリケーション自体の中のスレッドを数えたいと思います。実行中のスレッド(pthread)の数はどのように数えますか?
スレッド作成時にコードを追加することができません。これは、不変のライブラリ内で発生するためです。
/proc
が読み取れません。
これは、いくつかの異なるUnitsで動作するC/pthreadsプログラムです。
アプリケーションが持つスレッドの数を調べると、すべての答えにはtop
のような外部プログラムが関係します。アプリケーション自体の中のスレッドを数えたいと思います。実行中のスレッド(pthread)の数はどのように数えますか?
スレッド作成時にコードを追加することができません。これは、不変のライブラリ内で発生するためです。
/proc
が読み取れません。
これは、いくつかの異なるUnitsで動作するC/pthreadsプログラムです。
あなたのプログラムは、あなたが原因ポータビリティ懸念のは/ procを読みたくない場合は/proc
を読み込み、別のプログラムと通信しない限り、あなたは、トラブルのビットです/proc
あなたが読むことができない場合は、使用する可能性がありますlibproc
のようにビットを抽象化したライブラリ
libprocのヒントはありがたいですが、このロックダウン環境では動作しません。新しいライブラリを導入することは、no-noです。 – spraff
トップ-Hを使用してください。しかし、あなたがprocを読むことができなければ、トップはとにかく動作しない可能性があります。それが事実なら、簡単な方法はなく、あなたの特定のシステムに依存します。
"man ps"と 'thread'を見てください。たとえば "ps -TF -p $ pid"のように、私が推測するリモートコントロールが必要な場合は、ssh経由で実行できます。 – bestsss
これは私のアプリケーションで行う必要があり、別のアプリケーションを呼び出すことではありません。 – spraff
Pthreadsにスレッド数をカウントするAPIがないため、複数のカーネルスレッドを取得することさえ保証されません。プロセスをptrace(2)することはできますが、これはデバッグにのみ使用するハックです。 – rlibby