主线程 MyThread01Thread
package cn.itcast.day12.demo05;
/**
* @author admin
* @version 1.0.0
* @ClassName MyThread01Thread.java
* @Description TODO
* @createTime 2021年09月27日 20:38:00
*/
/**
* 线程名称:
* 主线程:main
* 新线程:name = Thread-0,Thread-1,Thread-2
*
*/
public class MyThread01Thread {
public static void main(String[] args) {
//创建Thread类的子类对象
MyThread01 mt = new MyThread01();
//调用start方法,开启新线程,执行run方法
mt.start();
MyThread01 mt1 = new MyThread01();
mt1.start();
new MyThread01().start();
/**
* 主线程不能直接使用getName方法 因为主线程并没有直接继承Thread类 就没有getName方法
* 所以必须要先获取 Thread.currentThread() 当前正在执行的线程 .getName() 然后再来获取getName 获取名称
*/
System.out.println(Thread.currentThread().getName());
}
}
新线程 MyThread01
package cn.itcast.day12.demo05;
/**
* @author admin
* @version 1.0.0
* @ClassName MyThread01.java
* @Description TODO
* @createTime 2021年09月27日 20:32:00
*/
/**
* 获取线程的名称:
* 1.使用Thread类中的方法getName()
* String getName() 返回该线程的名称
* 2.可以先获取到当前正在执行的线程,使用线程中的方法getName() 获取线程名称
* static Thread currentThread() 返回当前正在执行的线程对象的引用
*
*/
//定义一个Thread类的子类
public class MyThread01 extends Thread{
//重写Thread类中的run方法,设置线程任务
@Override
public void run() {
//获取线程名称
//第一种方法
/* String name = getName();
System.out.println("name = " + name);*/
/**
* name = Thread-0
* name = Thread-1
* name = Thread-2
*/
//第二种方法
/* Thread t = Thread.currentThread();
System.out.println("t = " + t);*/
/**
* t = Thread[Thread-0,5,main]
* t = Thread[Thread-2,5,main]
* t = Thread[Thread-1,5,main]
*
*/
//第三种方法
/* String name = t.getName();
System.out.println("name = " + name);*/
/**
*
* t = Thread[Thread-2,5,main]
* name = Thread-2
* t = Thread[Thread-0,5,main]
* name = Thread-0
* t = Thread[Thread-1,5,main]
* name = Thread-1
*/
//第四种方法
System.out.println(Thread.currentThread().getName());
/**
* 链式编程
* Thread-0
* Thread-1
* Thread-2
*/
}
}