pthread_self -
呼び出したスレッドの
ID を取得する
#include <pthread.h>
pthread_t pthread_self(void);
-pthread でコンパイルしてリンクする。
pthread_self()
関数は、呼び出したスレッドの
ID を返す。 得られる ID
は、このスレッドが作成された
pthread_create(3) の 呼び出しで
*thread
で返されるのと同じ値である。
この関数は常に成功し、呼び出したスレッドの
ID を返す。
この関数は常に成功する。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
pthread_self() |
Thread safety |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
POSIX.1 では、スレッド ID
を表現するのに使用する型は、
スレッド実装が完全に自由に選択してよいことになっている。
例えば、スレッド ID
を表現するのに数値型を使っても構造体を使ってもよい。
そのため、移植性を確保しつつ、
C 言語の等価演算子 (
==) を使って、
pthread_t
型の変数の比較を行うことはできない。
代わりに
pthread_equal(3)
を使うこと。
スレッド識別子はその内部構造を意識すべきではない。
pthreads
関数以外でスレッド ID
を利用しようとした場合、
移植性がなくなり、どのような結果が得られるかも分からない。
スレッド ID
の一意性が保証されるのは、あるプロセス内においてのみである。
終了したスレッドが join
されたり、
切り離された (detached)
スレッドが終了されたりした後は、
そのスレッド ID
は再利用されることがある。
pthread_self() が返すスレッド
ID は、
gettid(2)
が返すカーネルスレッド
ID
とは違うものである。
pthread_create(3),
pthread_equal(3),
pthreads(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。