java中cpu如何进行抢夺
首先我们需要知道一个东西就是优先级:在Thread类中,我们可以看到定义了一个参数proprity.
proprity是干什么的呢,他的名字为优先级,他是线程是否抢夺到cpu的关键因素之一,在windows中proprity的取值范围为0-10,他的默认值为5
他的作用跟他的名字一样,cpu会根据proprity的值分配执行权
但是cpu只考虑proprity的值就分配执行权了吗,显然不是,因为这样的话其他线程就没有执行权了,这时候就有了另一个东西,叫做饥饿参数.
比如,线程一的优先级别为10,饥饿参数为0,线程二的优先级别为5,饥饿参数为20,此时cpu会执行线程二,但是随着执行线程二的饥饿参数会降低
形象点就是分蛋糕,不能因为你的优先级就一直吃,如果你饱了就会让给别人吃