介绍
这篇文章给大家介绍深入浅析Java中多线程优先级,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强> Java多线程优先级实例详解强>
线程的优先级将该线程的重要性传递给调度器。尽管CPU处理现有线程集的顺序是不确定的,但是调度器将倾向于让优先权最高的线程先执行。
你可以用getPriority()来读取现有线程的优先级,并且在任何时刻都可以通过setPriority()来修改优先级。
进口java.util.concurrent.ExecutorService; 进口java.util.concurrent.Executors; 公共类SimplePriorities实现Runnable { 私人int倒计时=5;/* Java语言规范第三版中对不稳定的定义如下:Java编程语言允许线程访问共享变量, 为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。 Java语言提供了波动,在某些情况下比锁更加方便。如果一个字段被声明成不稳定, java线程内存模型确保所有线程看到这个变量的值是一致的。*/私人波动双d; 私人int优先; 公共SimplePriorities (int优先){ 这一点。优先级=的优先级; } 公共字符串toString () {//获取当前线程信息 返回Thread.currentThread () +“:“;+倒计时; } @Override 公共空间run () {//设置线程优先级1 - 10 Thread.currentThread () .setPriority(优先); 而(真){ for (int i=0; i<100000;我+ +){ d +=(数学。PI + Math.E)/(双)我; 如果(i00==0) { thread . yield (); } } System.out.println (this.toString ()); 如果(——倒计时==0)返回; } } 公共静态void main (String [] args) { ExecutorService exec=Executors.newCachedThreadPool ();//优先级为1 执行。执行(新SimplePriorities (Thread.MIN_PRIORITY));//优先级为10 执行。执行(新SimplePriorities (Thread.MAX_PRIORITY)); exec.shutdown (); } }
toString()方法被覆盖,以便使用Thread.toString()方法来打印线程的名称,线程的优先级以及线程所属的“线程组”。
关于深入浅析Java中多线程优先级就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。