私はCとpthreadsでプログラミングしています。pthread_tインスタンスを有効範囲外にすることはできますか?
void long_running_function(void * arg) {
...
}
void start_long_running_function(void * arg) {
pthread_t thread;
pthread_create(&thread , NULL , long_running_function , arg);
/* What about the thread variable? */
}
start_long_running_functionを(残して)ローカル変数「スレッドを」関数スコープの外に行く:私は別々のスレッドで実行したい長時間実行機能を持っています。これは問題ありませんか? long_running_function()が完了したら?
私のコードで説明したアプローチを試してみましたが、うまくいくようですが、運が幸運なのでしょうか?
よろしくヨアキム
ありがとうございます。私はpthread_detach()を調べます - 私はstart_long_running_function()の最後にそれを追加できると思います。 – user422005
@ user422005:スレッドを常にデタッチすることがわかっている場合は、スレッド作成時の属性(pthread_attr_setdetachstate)を使用して、最初にdetachされたスレッドを作成できます。 –