読者です 読者をやめる 読者になる 読者になる

1101

工学系大学院生の雑記。

デタッチとは

Linuxでスレッドプログラムを作成中に知らないワードに出くわしたので覚え書き。



スレッドはデタッチという状態をもつ。

デタッチとは、アタッチの対義語で、分離する、切り離す、といった意味をもつ。

pthreadでは、スレッドをデタッチ状態にするためにpthread_detach()を使用する。

スレッドがデタッチ状態にあると、スレッドが終了したとき、直ちにこのスレッドが消費していたメモリ資源が開放される。

つまり、いちいちpthread_join()を使ってスレッドを終了してあげる必要がない。

逆に言えば、デタッチ状態のスレッドを別スレッドからpthread_join()を用いて任意のタイミングで終了させることはできないので注意が必要。


ちなみに、デタッチ状態でないスレッドは終了してもメモリを消費したままなので、外からjoinしてあげる必要がある。

スレッドプログラムってめんどくさいことが多いねー。




参考 :

Man page of PTHREAD_JOIN

Man page of PTHREAD_DETACH