2012-04-16 18 views
0

仕様では、スレッドまたはプロセスが終了するのを待ってブロックしてはいけないと言います。つまり、通常、子プロセスとワーカースレッドが完了する前にfunction()が戻ります。 これをどのように達成できますか? pthread_joinと言うと、pthreadが終了するまで関数は待機し、スレッドがなければ、スレッドはすべての処理を行う前に取り消されます。pthreadを待たずに関数を終了させますか?

ありがとうございました。

+0

どのような機能ですか?どのような仕様ですか? –

+0

私のMPのためです。 – Krzysiek

+0

Ahem ... MP?.... –

答えて

2

スレッドのコンテナにスレッドへの参照を格納する必要があります。スレッドのコンテナには、グローバルであるか関数によって返され、呼び出し元によって保持されている必要があります。その後、プロセスの最後に(ただし、関数が返されてから時間がかかります)、そのコンテナ内のすべてのスレッドでpthread_joinと呼び出して、それらが正しく終了していることを確認します。

+0

ありがとうございます。それはトリックです。 – Krzysiek

+1

pthread_detach()?スレッドは、終了時にOSによって再利用されます。 –

関連する問題