它将有许多处理节点,这些节点从公共队列中获取任务并对其进行处理。
我的想法是在每个节点中都有一个线程,该线程从任务队列中读取并启动一个任务来完成工作。
我的问题是如何限制每个节点中排队的任务的数量,因为它只取决于创建任务的线程的速度,而不是节点的当前负载。如何知道ThreadPool中排队的项目数?如何才能公平地分配任务?
耽误您时间,实在对不起。
发布于 2016-04-05 03:41:47
每次在开始时从普通队列创建任务都应该Interlocked.Increment变量QueuedTaskCount,在开始时每个任务都应该Interlocked.Decrement相同的变量。变量QueuedTaskCount现在包含排队的任务数。
https://stackoverflow.com/questions/36410953
复制相似问题