我正在研究一个本来应该很简单解决的问题,但是我做起来并不容易。问题很简单:我有一个运行在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
提交
取消