64

pthreadCでスレッドを作成および参加するためにライブラリを使用しています。

  1. 最初から切り離されたスレッドをいつ作成する必要がありますか? 結合可能なスレッドと比較して、パフォーマンス上の利点はありますか?

  2. pthread_join()結合可能な (デフォルトで) スレッドで a を実行しないことは合法ですか? または、そのようなスレッドは常にingのdetach()前に関数を使用する必要がありますか?pthread_exit()

4

2 に答える 2

85
  1. で待ちたくないことがわかっている場合は、切り離されたスレッドを作成しますpthread_join()。唯一のパフォーマンス上の利点は、切り離されたスレッドが終了したときに、リソースが解放される前にスレッドが結合されるのを待たずに、そのリソースをすぐに解放できることです。

  2. 参加可能なスレッドに参加しないことは「合法」です。ただし、(前述のように)スレッドが参加するまでリソースは解放されないため、通常はお勧めできません。そのため、参加しないと、リソースは(プログラムが終了するまで)無期限に拘束されたままになります。

于 2010-09-21T03:04:39.160 に答える