线程名称的获取与设置

线程名称的获取与设置

public classMyThread extendsThread {

 

   public MyThread() {

   }

  

   public MyThread(String name){

      super(name);

   }

 

   @Override

   public void run() {

      for (int x = 0; x < 100; x++){

         System.out.println(getName() + ":" + x);

      }

   }

}

 

/*

 * 如何获取线程对象的名称呢?

 * public final String getName():获取线程的名称。

 * 如何设置线程对象的名称呢?

 * public final void setName(String name):设置线程的名称

 *

 * 针对不是Thread类的子类中如何获取线程对象名称呢?

 * public static Thread currentThread():返回当前正在执行的线程对象

 * Thread.currentThread().getName()

 */

public classMyThreadDemo {

   public static void main(String[] args) {

      // 创建线程对象

      //无参构造+setXxx()

      // MyThread my1 = new MyThread();

      // MyThread my2 = new MyThread();

      // //调用方法设置名称

      // my1.setName("林青霞");

      // my2.setName("刘意");

      // my1.start();

      // my2.start();

     

      //带参构造方法给线程起名字

       MyThread my1 = new MyThread("线程一");

       MyThread my2 = new MyThread("线程二");

       my1.start();

       my2.start();

     

      //我要获取main方法所在的线程对象的名称,该怎么办呢?

      //遇到这种情况,Thread类提供了一个很好玩的方法:

      //public static Thread currentThread():返回当前正在执行的线程对象

      System.out.println(Thread.currentThread().getName());

   }

}

运行结果:

main

线程二:0

线程二:1

线程一:0

线程二:2

线程一:1

线程一:2

线程二:3

线程二:4

线程二:5

线程一:3

……

你可能感兴趣的:(线程名称)