スレッドの 明示的処理の join と 暗示的処理の detach2022年11月19日 13時19分11秒

C++ にもスレッド操作の関数が標準に入ってきてだいぶ経つ。元々、pthread の実装の影響を受けた API になっている。

生成したスレッドは必ず、join をするか detach をする必要がある。

join は明示的に終了したスレッドを回収する方法。join を呼ぶと、ブロックされる。戻り値などを処理したい場合などはこちらを用いる。

detach はスレッドの終了処理を OS に任せる方法。スレッドが終了次第、順次スレッドリソース等が回収される。こちらを用いると戻り値などは受けられない。

一度、detach すると join 出来なくなるなどの制限がある。どちらが良いかは用途と目的次第だと思う。