Cでpthreadsを使用してプログラミングしています。
ID 0、1、2、3 の 4 つの子スレッドを作成する必要がある親スレッドがあります。親スレッドがデータを取得すると、データを分割し、それを 4 つの個別のコンテキスト変数 (サブスレッドごとに 1 つ) に割り当てます。 . サブスレッドはこのデータを処理する必要があり、その間、親スレッドはこれらのスレッドで待機する必要があります。これらのサブスレッドの実行が完了すると、対応するコンテキスト変数に出力が設定され、(再利用のために) 待機します。親スレッドは、これらすべてのサブスレッドがこのラウンドを完了したことを認識すると、グローバル出力を計算して出力します。現在、新しいデータを待機しています (サブスレッドはまだ強制終了されておらず、待機しているだけです)。
親スレッドがさらにデータを取得すると、上記のプロセスが繰り返されます - 既に作成された 4 つのスレッドがあります。
親スレッドが kill コマンド (特定の種類のデータを想定) を受信すると、すべてのサブスレッドに通知され、それらは終了します。これで、親スレッドを終了できます。
私は修士課程の研究生で、上記のシナリオの必要性に直面しています。これは、pthread_cond_wait、pthread_Cond_signal を使用して実行できることを知っています。コードを書きましたが、無期限に実行されているだけで、理由がわかりません。
私の推測では、私がコーディングした方法では、シナリオを過度に複雑にしました。これをどのように実装できるかを知ることは非常に役立ちます。必要があれば、コードの簡略版を投稿して、何をしようとしているのかを示すことができます (私のアプローチには欠陥があると思いますが!)...
pthread を使用してこのシナリオを実装する方法について、何か洞察を教えてください。