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
和C
arirve那么66%将完成任务B
和33%任务C
等...
你会如何在Java中实现它?
ps:优先级队列不起作用,因为那时只会处理任务类型.此外,为线程分配优先级不会起作用,因为它不准确.
也许你应该使用 3 个线程池。A 任务有 1 个 7 线程池,B 任务有 1 个 2 线程池,C 任务有 1 个 1 线程池。
编辑:即使只有 C 任务(或者,如果您有很多处理器,如果您只有 B 和 C 任务)也要具有并行性,请将每个池中的线程数乘以处理器数或处理器数+ 1,或您喜欢的任何其他更大的因素。
归档时间: |
|
查看次数: |
2153 次 |
最近记录: |