2011-10-28 11 views

答えて

4

間違いなくpthread_cancelは、取り消されたスレッドがキャンセルハンドラの実行など、しばらくの間実行を続けている場合、スレッドのスタックを解放しません。

スレッドリソースは、pthread_detachがスレッドで呼び出され、スレッドが終了した後にクリーンアップされます(いずれかの順序で発生する可能性があります)。

+1

'pthread_detach'の代わりに、' pthread_join'を実行できます。しかし、スレッドスタックを解放することは保証されていません(OSに戻す) - スレッドライブラリは、作成しようとしている次のスレッドのためにスレッドライブラリを保持することを決定するかもしれません。 –

+0

@EmployedRussianこれにリンクしてください:*スレッドスタックを解放することが保証されていない場合もありますか? – Ali

関連する問題