0

複数のジョブを受け取り、スレッド プールからスレッドを選択してそれにジョブを割り当てるプロセスがあります。このスレッドは、独自のスレッド プールから別のスレッド セットを生成する場合があります。ジョブの STOP リクエストがメイン プロセスに到達すると、そのリクエストに対応するスレッドに転送され、そのジョブに関連付けられているすべてのスレッドがクリーンアップされて終了する必要があります。私の質問は、ワーカー スレッドに「止まる"。

グローバル変数を使用することができ、ワーカー スレッドはそれを頻繁にポーリングできますが、ワーカーが実行できる機能はたくさんあり、どこにでもチェックを追加するとうまくいく可能性があります。

クリーンなアプローチはありますか?ある種のメッセージング層。ところでコードはC++です

4

1 に答える 1

1

Boost.Threadライブラリは、Windows にも移植可能な pthreads のラッパーです。このboost::threadクラスには、次の中断ポイントinterrupt()でスレッドを中断するメソッドがあります。

Boost.Thread には、thread_group関連するスレッドのコレクションを提供するクラスもあります。には、スレッド グループ内の各スレッドで呼び出すメソッドthread_groupもあります。interrupt()interrupt()

于 2012-11-08T04:35:28.037 に答える