Linuxでは、スレッドはpthread_t
またはTIDによって識別されます。私は、スレッドIDのこの2種類の間に橋を探しています:LinuxのスレッドTIDとpthread_tの "スレッドID"をリンクする方法はありますか
pthread_t
が、私はそれがTID
だ得ることができます与えられましたか? pthreadの内部にハッキングなしapparentlyない:(私はまだケースに求めている誰かがそれを行うにはきれいな方法があります。TID
(またはPID
)与えられたが、私はそれにpthread_t
ハンドルを得ることができますか?
用語「スレッドID」は、この文脈では曖昧であるため(およびドキュメントに)、バックグラウンドのビット:
POSIXのpthreadのAPIは
pthread_t
タイプ、らを定義l関数は、スレッドに対してクエリ/アクションが引数pthread_t
を使用しており、そのようなハンドルを得ることができます。pthread_self()
となります。ドキュメントではこれらの「スレッドID」を呼び出していますが、複数の異なるpthread_t
の値が同じスレッドを表す可能性があるため、曖昧さ回避のためにハンドルと呼びます。したがって、pthread_equal(pthread_t, pthread_t)
が必要です。一方、少なくともLinuxでは、
TID
やスレッドIDという概念があります。システムコール:syscall(SYS_gettid)
で現在のTID
を得ることができます。TID
は残念ながら、そうするための何のポータブルな方法がありません
あなたは 'TID'をどうするつもりですか? –
@MaximEgorushkin:簡単なデバッグ/トレース(ユニークなので)、メインスレッド上での操作を別のものから行うか、pthreadで抽象化されていないLinux固有のスレッド関数を使用します。 – Antoine