008 优先级和饥饿问题
Posted trekxu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了008 优先级和饥饿问题相关的知识,希望对你有一定的参考价值。
一 . 概述
在上面我们说到由于线程的优先级的设置不当,造成了线程运行的程度会不同,
最终会有一些线程很难得到运行的机会.
一般操作系统是使用时间片轮转的方式进行线程的优先级的改变.
二 . 动态优先级
现代操作系统一般都使用动态优先级的模式,也就是说,一个线程当运行一次之后,它的优先级就会降低,
当将到最低的时候,
该线程的优先级又会被设置为最高.
三 .由于阻塞导致饥饿问题
一个线程由于抢夺资源失败,导致该线程进入锁池之中(阻塞队列之中).
当获取该资源的线程运行的时间花费的时间较多,那么进入阻塞队列的线程就会发生饥饿问题.
四 . 由于wait导致的饥饿问题
由于同步不当,一个线程可能会进入到等待池之中,当该线程迟迟不能被唤醒,那么也会发生饥饿的问题.
五 . 问题的解决
优先级的问题:
优先级的设置只是一个概率上的事情,只有在大的统计范围内才有效.
同步产生的问题:
我们可以使用锁来替代synchronized完成任务.
以上是关于008 优先级和饥饿问题的主要内容,如果未能解决你的问题,请参考以下文章