我有很多優先A
,B
和C
的傳入任務,我想用多核CPU上的線程池來處理任務。應使用70%的CPU來處理'類型A
'任務,'類型B
'任務的CPU的20%和'類型C
'任務的CPU的10%。在一個線程池中處理具有不同優先級的任務
但是,如果只有'C
'類型的任務到達,那麼100%的CPU應該專門用於它們。如果唯一任務B
和C
arirve然後66%的proccess任務B
和33%的任務C
等..
你將如何在Java中實現這一點?
p.s: 優先級隊列將不起作用,因爲那樣只會輸入一個任務將被處理。此外,爲線程分配優先級不會工作,因爲它不準確。
你經常會在面試問題,它們沒有什麼用處。(只是想看看你如何看待一個新問題,但它是新的,因爲沒有很好的理由你會這樣做)我會確保我明白真正的商業需求是什麼,因爲我懷疑他們真正想要達到的目標是什麼做一個更好的方法。例如,強制執行上述方案可能會減慢所有任務的速度(開銷),並且可能會以更簡單的方式獲得更好的結果。 – 2012-03-10 16:46:35