仕様では、スレッドまたはプロセスが終了するのを待ってブロックしてはいけないと言います。つまり、通常、子プロセスとワーカースレッドが完了する前にfunction()が戻ります。 これをどのように達成できますか? pthread_joinと言うと、pthreadが終了するまで関数は待機し、スレッドがなければ、スレッドはすべての処理を行う前に取り消されます。pthreadを待たずに関数を終了させますか?
ありがとうございました。
仕様では、スレッドまたはプロセスが終了するのを待ってブロックしてはいけないと言います。つまり、通常、子プロセスとワーカースレッドが完了する前にfunction()が戻ります。 これをどのように達成できますか? pthread_joinと言うと、pthreadが終了するまで関数は待機し、スレッドがなければ、スレッドはすべての処理を行う前に取り消されます。pthreadを待たずに関数を終了させますか?
ありがとうございました。
スレッドのコンテナにスレッドへの参照を格納する必要があります。スレッドのコンテナには、グローバルであるか関数によって返され、呼び出し元によって保持されている必要があります。その後、プロセスの最後に(ただし、関数が返されてから時間がかかります)、そのコンテナ内のすべてのスレッドでpthread_join
と呼び出して、それらが正しく終了していることを確認します。
ありがとうございます。それはトリックです。 – Krzysiek
pthread_detach()?スレッドは、終了時にOSによって再利用されます。 –
どのような機能ですか?どのような仕様ですか? –
私のMPのためです。 – Krzysiek
Ahem ... MP?.... –