我正在研究一個本來應該很簡單解決的問題,但是我做起來并不容易。問題很簡單:我有一個運行在Linux / x86上的Java程序,該程序可以執行兩個基本功能F1和F2。我想將F1設置為更高的優先級,即使F2有時執行也是必須的,即,將F1請求放在隊列中這一事實不能使F2請求永遠等待。盡管我的第一個任務只是為每個功能使用單獨的隊列和線程池,但我將F1池設置為具有8個線程,而F2池只有2個線程。在我的期望下,Linux將為每個線程分配相當多的時間,因此F1將有8個量子,而F2將只有2個量子。如果沒有F1請求,則F2池可以獲取每個量子,對F1來說也應該如此如果F2沒有請求。但是,該程序的行為方式卻不是這樣,如果我收到一堆F2請求,而只有幾個F1記錄,則后者要花很長時間才能輪到它。談論Oracle HotSpot / linux調度有意義嗎?還是不應該發生,從我的角度來看,什么會導致實現錯誤?
添加回答
舉報
0/150
提交
取消