0
私は、ワーカースレッドがコマンドを待って、それをしてから、結果を呼び出し側に返すようにしたいと思います。これは、レスポンスが戻ってきたため、通常のプロデューサ/コンシューマの問題とは異なります。プロデューサとコンシューマに両方の方法で通信するにはどうすればよいですか?
main
{
construct workers
push to shared input buffers
notify workers
wait
print results from shared output buffer
}
worker
{
wait
read from shared input buffer
do work
notify main
}
私は正しい軌道に乗っています:
これは私が考えている何ですか?メインの待機が始まる前に作業員が応答する可能性はありますか?
あなたは正しい軌道に乗っている
条件が満たされるまで実行されるスレッドがあります。次にスレッド2に通知して実行を停止します。スレッド2は目覚めて実行し、条件を満たし、スレッド1に通知して停止します。スレッド1は目を覚まして実行します。すべての作業がシリアル化されています。あなたはスレッド化の必要性を排除し、単一のスレッド化された[状態マシン](https://en.wikipedia.org/wiki/Finite-state_machine)を使用する方がよいでしょう。 – user4581301
@ user4581301私の計画は複数の労働者を雇って仕事を並行して行うことです。 (私はポストを更新しました) – Josh
ワーカーは再起動を期待していますか、必要に応じて新しいスレッドを作成しますか? – user4581301