各スレッドにヘルパー スレッドがあり、最初のスレッドがタスクを達成するのに役立つマルチスレッド アプリケーションがあります。スレッドが終了する (exit を呼び出す可能性が高い) ときに、ヘルパー スレッドも終了することを望みます。
を使用する可能性があることは知っていますexit_group
が、このシステム コールは、呼び出しスレッドの同じグループ内のすべてのスレッドを強制終了します。たとえば、アプリケーションに 10 個のスレッド (したがって 10 個の追加のヘルパー スレッド) がある場合、スレッドと関連するヘルパー スレッドのみを終了し、他のスレッドは実行し続けたいと考えています。
私のアプリケーションは Linux でのみ動作します。
どうすればこの動作を行うことができますか?
マルチスレッドについて読んで、Linux のスレッド グループとプロセス グループの概念について少し混乱しました。これらの用語は同じものを指していますか? 正確には、プロセス グループ (およびおそらくスレッド グループ) は、次の呼び出しのいずれかによって取得される pid です。
pid_t getpgid(pid_t pid);
pid_t getpgrp(void); /* POSIX.1 version */
pid_t getpgrp(pid_t pid); /* BSD version */