スレッドごとに 1 つのキューを持つパラダイムがあります。次のコードで行った、キューの数の中から最小サイズのキューを見つけたいと思います。
std::vector<std::queue<task> > q;
int min_value = INT_MAX;
std::size_t size = q.size();
for( i=1; i<size; i++){ //accessing loop of queues
if(min_value > q[i].size())
min_value = q[i].size();
}
ここで、最小サイズのキュー (上記のコードから見つかった) のみがタスクをキューに入れるたびに、これで追加の操作を実行したいと考えています。
q.get (min_value)
q.push(task) // will this one, does the required operation?