私は以下のようなシナリオを持っています: の整数のペア(本質的にはタスクの説明)を持つ1つのスレッドがあります。 このコンテナから要素を取り、何らかの作業を実行するワーカースレッド(8-16)の数。C++でマルチスレッドワークキュー(コンシューマ/プロデューサ)を構築する
ブロックキューで問題を簡単に解決できると考えました。アイテムを削除すると、スレッドはキューへのアクセスを同期し、利用可能なデータがない場合はスリープします。
私は(おそらく間違って)このようなものがSTLまたはブーストに存在するはずだと仮定しましたが、何も見つかりませんでした。
私は実際に自分でそれを実装する必要がありますか?このような一般的なシナリオのようです...
セマフォの実装に応じて、Consumeプロセスはループ内で実行する必要があるかもしれません – Aaron