スレッドやプロセスのデタッチ状態とはどういう状態でしょうか?
pthreadはデタッチ状態になるまでリソースを解放しない
pthread_attr_initのヘルプ・マニュアル
スレッドのデタッチとjoin
c
1void *wait_s(void *dmy){ 2 while(1){ 3 <なんらかの処理> 4 } 5} 6 7 pthread_attr_init(&atr); 8 pthread_attr_setdetachstate(&atr, PTHREAD_CREATE_DETACHED); 9 pthread_create(&pt, &atr, wait_s, NULL);
このようにデタッチの設定を行うとjoinする必要はなくなるんでしょうか?
逆にデタッチをしないで、無限ループのスレッドを作っても、joinすれば強制的に無限ループのスレッドも終了させられるんでしょうか?
もう1つ、デタッチなしで、無限ループのスレッド+joinなし でスレッドを作成し、main()のスレッドを終了させた場合、オルファンになるのでしょうか?
th が終了したときに、 th によって消費されていたメモリ資源を即座に解放することを保証する。
上記のように無限ループの場合、終了しませんよね?
デタッチする必要性は何でしょうか?
スレッドやプロセスのアタッチやデタッチがよく分かりません。
どういう状態を指すのでしょうか?
Linux 64bit gcc です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/06 05:39
2017/08/06 05:40
2017/08/06 05:43 編集
2017/08/06 05:45
2017/08/06 05:48
2017/08/06 05:49
2017/08/06 05:52
2017/08/06 05:53
2017/08/06 05:55
2017/08/06 05:56
2017/08/06 06:00
2017/08/06 06:04
2017/08/06 06:10
2017/08/06 06:12
2017/08/06 06:14
2017/08/06 06:34
2017/08/06 06:37