深入浅析Java中多线程优先级

  介绍

这篇文章给大家介绍深入浅析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中多线程优先级

深入浅析Java中多线程优先级

关于深入浅析Java中多线程优先级就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

深入浅析Java中多线程优先级