gpt4 book ai didi

c++ - 在 C++ 中确定等待同一阻塞操作的线程优先级的好方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:43:34 33 4
gpt4 key购买 nike

只有一个阻塞队列。有一个相同的工作池,当某些东西被插入队列时,它们只是等待条件变量,并尝试从队列中弹出。假设队列包含任务。

在理想情况下,线程会统一弹出任务。我想为该概率添加一些偏差,以便每个工作人员根据其优先级弹出任务总量的一定百分比。但是,如果队列中有未处理的任务,则不应有意让线程空闲。

简单的例子。

有 3 个 worker,111 个任务,每秒一个任务进入队列。每个任务大约需要 1 秒来处理。 worker 的优先级是 10、1、100。然后 worker 应该分别弹出大约 10、1 和 100 个任务。


有没有一种方便的方法可以使用标准条件变量和互斥量来实现这种机制? - 概率方法很好。

最佳答案

创建等待线程的priority_queue。当有新任务加入任务队列时,从priority_queue中弹出最小线程来处理新任务。

关于c++ - 在 C++ 中确定等待同一阻塞操作的线程优先级的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22656996/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com