dov*_*mir 11 java concurrency event-handling threadpool
我有许多优先传入的任务A,B并且C我想在多核CPU上使用线程池处理任务.70%的CPU应该用于处理"类型A"任务,20%的CPU用于"类型B"任务,10%用于"类型C"任务.
但是,如果只有'type C'的任务到达,那么100%的CPU应该专门用于它们.如果只有任务B和Carirve那么66%将完成任务B和33%任务C等...
你会如何在Java中实现它?
ps:优先级队列不起作用,因为那时只会处理任务类型.此外,为线程分配优先级不会起作用,因为它不准确.
也许你应该使用 3 个线程池。A 任务有 1 个 7 线程池,B 任务有 1 个 2 线程池,C 任务有 1 个 1 线程池。
编辑:即使只有 C 任务(或者,如果您有很多处理器,如果您只有 B 和 C 任务)也要具有并行性,请将每个池中的线程数乘以处理器数或处理器数+ 1,或您喜欢的任何其他更大的因素。
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |