如何检查线程的优先级?(How to check priority level of a thread?)

优质
小牛编辑
121浏览
2023-12-01

问题描述 (Problem Description)

如何检查线程的优先级?

解决方案 (Solution)

下面的示例演示如何使用Thread的getPriority()方法检查线程的优先级。

public class Main extends Object {
   private static Runnable makeRunnable() {
      Runnable r = new Runnable() {
         public void run() {
            for (int i = 0; i < 5; i++) {
               Thread t = Thread.currentThread();
               System.out.println("in run() - priority = " + t.getPriority()+ ", name = " + t.getName());
               try {
                  Thread.sleep(2000);
               } catch (InterruptedException x) {}
            }
         }
      };
      return r;
   }
   public static void main(String[] args) {
      System.out.println(
         "in main() - Thread.currentThread(). getPriority()=" + Thread.currentThread().getPriority());
      System.out.println(
         "in main() - Thread.currentThread().getName()="+ Thread.currentThread().getName());
      Thread threadA = new Thread(makeRunnable(), "threadA");
      threadA.start();
      try {
         Thread.sleep(3000);
      } catch (InterruptedException x) {}
      System.out.println("in main() - threadA.getPriority() = " + threadA.getPriority());
   }
}

结果 (Result)

上面的代码示例将产生以下结果。

in main() - Thread.currentThread().getPriority()=5
in main() - Thread.currentThread().getName()=main
in run() - priority=5, name=threadA
in run() - priority=5, name=threadA
in main() - threadA.getPriority()=5
in run() - priority=5, name=threadA
in run() - priority=5, name=threadA
in run() - priority=5, name=threadA