获取线程的名称:

String getName():                      返回该线程的名称

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

1、使用Thread类中的getName()返回该线程的名称

public class Demo extends Thread{

    @Override
    public void run() {
        System.out.println(getName());
    }
}
public class DemoMain {
    public static void main(String[] args) {
         Demo d=new Demo();
         d.start();
         new Demo().start();
//Thread-1 Thread-0
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

2、可以先获取当前正在执行的线程,使用线程中的方法的getName()获取线程的名称

public class Demo extends Thread{

    @Override
    public void run() {
        System.out.println(Thread.currentThread());
    }
}
public class DemoMain {
    public static void main(String[] args) {
         Demo d=new Demo();
         d.start();
         new Demo().start();
         /*
        Thread[Thread-1,5,main]
        Thread[Thread-0,5,main]
        
          */
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

设置线程的名称(了解)

void  setName(String name):改变线程名称,使之与参数name相同

Thread(String name):分配新的Thread对象

1、使用Thread类中的方法setName(名字)

public class Demo extends Thread{

    @Override
    public void run() {
        System.out.println(Thread.currentThread());
    }
}
public class DemoMain {
    public static void main(String[] args) {
         Demo d=new Demo();
         d.setName("aaa");//在启动线程之前,设置线程名称
         d.start();
         /*
     Thread[aaa,5,main]
          */
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

2、创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让父类(Thread)给子线程起一个名字

public class Demo extends Thread{
public Demo(){}
  public Demo(String name){
    super(name);
  }
    @Override
    public void run() {
        System.out.println(Thread.currentThread());
    }
}

public class DemoMain {
    public static void main(String[] args) {
         Demo d=new Demo("aaa");//通过父类的构造方法设置线程的名称
         d.start();
         /*
     Thread[aaa,5,main]
          */
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

暂停线程

public static void sleep(long millis):使当前正在执行的线程以指定的毫秒数暂停。毫秒数结束后,线程继续执行

public class DemoMain {
    public static void main(String[] args) throws InterruptedException {
         for(int i=1;i<=10;i++){
             System.out.println(i);
             Thread.sleep(1000);//sleep方法有异常,throws或者try...catch处理
         }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.