线程优先级

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程优先级相关的知识,希望对你有一定的参考价值。

调节线程优先级有什么作用?线程优先级究竟指的是什么?

每个进程都有相应的优先级,优先级决定它何时运行和接收多少CPU时间。最终的优先级共32级,是从0到31的数值,称为基本优先级别(Base Priority LeveL)。系统按照不同的优先级调度进程的运行,0-15级是普通优先级,进程的优先级可以动态变化,高优先级进程优先运行,只有高优先级进程不运行时,才调度低优先级进程运行,优先级相同的进程按照时间片轮流运行。16-31级是实时优先级,实时优先级与普通优先级的最大区别在于相同优先级进程的运行不按照时间片轮转,而是先运行的进程就先控制CPU,如果它不主动放弃控制,同级或低优先级的进程就无法运行。这就是进(线)程的推进问题。希望这些对你有帮助。值得信赖.2011/10/13 22:20:59 参考技术A 每个线程都具有各自的优先级,线程的优先级可以在程序中表明该线程的重要性,如果有很多线程处于就绪状态,系统会根据优先级来决定首先使哪个线程进入运行状态。但这个并不意味着低
优先级的线程得不到运行,而只是它运行的几率比较小,如垃圾回收机制线程的优先级就比较低。所以很多垃圾得不到及时的回收处理。
Thread类中包含的成员变量代表了线程的某些优先级。如Thread.MIN_PRIORITY(常数1),
Thread.MAX_PRIORITY(常数10),Thread.NORM_PRIORITY(常数5)。其中每个线程的优先级都在Thread.MIN_PRIORITY到Thread.MAX_PRIORITY(常数10)之间,在默认情况下优先级都是Thread.NORM_PRIORITY(常数5)。每个先产生的线程都继承福线程的优先级。
在多任务的操作系统中,每个线程都会得到一小段CPU时间片运行,在时间结束后,将轮换另一个线程进入运行状态,这是系统就会选择与当前优先级相同的程序予以运行,系统始终选择就绪状态下优先级较高的线程进入运行状态。

希望采纳…………谢谢
参考技术B 优先级越高,就越可能被cpu调度执行该线程,但是对于java中的优先级来说不太可靠,系统自带一个线程的优先级,java程序中对线程所设置的优先级只是给系统一个提示一个建议,至于系统采纳不采纳就不一定了 参考技术C 优先级越高的线程被线程调度器调用的几率就越高
不过线程优先级这个东西不是太可靠 如果2个线程的优先级差太多的话比如一个1 一个10 那么那个优先级是1的线程可能永远都不会被调用本回答被提问者采纳

以上是关于线程优先级的主要内容,如果未能解决你的问题,请参考以下文章

Android 设置线程优先级

Java - 线程优先级和守护线程

线程优先级

多线程-3

如何设置线程优先级 delphi

Java 多线程基础线程优先级和守护线程