1. ホーム
  2. c

[解決済み] LinuxのCプログラムでpthreadのスレッドIDを取得する方法は?

2022-02-05 14:30:38

質問内容

LinuxのCプログラムで、pthreadライブラリで生成されたスレッドのスレッドIDを表示するには?たとえば、次のようにしてプロセスの pid を取得することができます。 getpid() .

解決方法は?

pthread_self() 関数は、現在のスレッドのスレッド ID を与えます。

pthread_t pthread_self(void);

pthread_self() 関数は、呼び出したスレッドの Pthread ハンドルを返します。pthread_self() 関数は、呼び出したスレッドの積分スレッドを返しません。そのため pthread_getthreadid_np() を使用して、スレッドの積分識別子を返します。

注意

pthread_id_np_t   tid;
tid = pthread_getthreadid_np();

は、これらの呼び出しよりかなり高速ですが、同じ動作を提供します。

pthread_id_np_t   tid;
pthread_t         self;
self = pthread_self();
pthread_getunique_np(&self, &tid);