PTHREAD_DETACH
Section: Linux Programmer's Manual (3)
Updated: 2020-06-09
Index
JM Home Page
roff page
名前
pthread_detach - スレッドを切り離す (detach する)
書式
#include <pthread.h>
int pthread_detach(pthread_t thread);
-pthread を付けてコンパイルとリンクを行う。
説明
pthread_detach() 関数は thread で識別されるスレッドに
detached (切り離された状態) という印を付ける。
detached 状態のスレッドが終了すると、
別のスレッドが終了されたスレッドを join しなくても、
そのスレッドのリソースは自動的に解放されてシステムに戻される。
すでに detach 状態のスレッドを detach しようとした場合に
どのような結果となるかは規定されていない。
返り値
成功すると、pthread_detach() は 0 を返す。
エラーの場合、エラー番号を返す。
エラー
- EINVAL
-
thread が join 可能なスレッドではない。
- ESRCH
-
ID が thread のスレッドが見つからなかった。
属性
この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース | 属性 | 値
|
pthread_detach()
| Thread safety | MT-Safe
|
準拠
POSIX.1-2001, POSIX.1-2008.
注意
いったんスレッドを detached 状態にすると、
そのスレッドを pthread_join(3) で join したり、
もう一度 join 可能にしたりすることはできない。
pthread_attr_setdetachstate(3) を使って
pthread_create(3) の attr 引数の detached 属性を設定することで、
新しいスレッドを detached 状態で作成することができる。
detached 属性は、スレッドが終了した際のシステムの動作を決めるだけである。
プロセスが exit(3) を使って終了した場合に、そのスレッドが終了され
なくなるようなことはない (なお、メインスレッドが return した場合も
プロセスが exit(3) を使って終了した場合と全く同じである)。
Either pthread_join(3) or pthread_detach() should be called for each
thread that an application creates, so that system resources for the thread
can be released. (But note that the resources of any threads for which one
of these actions has not been done will be freed when the process
terminates.)
例
以下の文は、呼び出したスレッド自身を detach する。
pthread_detach(pthread_self());
関連項目
pthread_attr_setdetachstate(3), pthread_cancel(3),
pthread_create(3), pthread_exit(3), pthread_join(3), pthreads(7)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/ に書かれている。
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 属性
-
- 準拠
-
- 注意
-
- 例
-
- 関連項目
-
- この文書について
-
This document was created by
man2html,
using the manual pages.
Time: 03:33:32 GMT, December 05, 2022