Java 示例 - 检查线程

  • 问题描述

    如何检查线程的优先级?
  • 解决方案

    以下示例演示如何使用线程的 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());
       }
    }
    
  • 结果

    上面的代码示例将产生以下结果。
    
    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