310Thread类的常用方法获取线程名的方法和311设置线程名称的方法

Thread类的常用方法获取线程名的方法

/**
 * 获取线程的名称:
 * 1.使用 Thread类中的方法 getname()
 * string getname()返回该线程的名称
 * 2.可以先获取到当前正在执行的线程,使用线程中的方法getname()获取线程的名称
 * static Thread current thread()返回对当前正在执行的线程对象的引用。
 */
public class demo02Date {
    public static void main(String[] args) {
        //创建Thread类的子类对象
        MyTherad mt = new MyTherad();
        //调用start方法,开启信线程,执行run方法
        mt.start();

        new MyTherad().start();
    }
}
//从新定义一个Therad子类
class MyTherad extends Thread{
    //重写MyThread类种的run方法,设置线程任务
    @Override
    public void run() {
//        //获取多线程名称
//        String name =getName();
//        System.out.println(name);
//        Thread t = Thread.currentThread();
//        System.out.println(t);
//
//        String name =t.getName();
//        System.out.println(name);
        //链式表
        System.out.println(Thread.currentThread().getName());
    }
}

public class MyThread extends Thread{
//重写Thread中的run方法,设置线程任务
public void run() {
//获取线程名称的第一种方法
String name=getName();
System.out.println(name);
}}
//获取线程名称的第二种方法
public class MyThread extends Thread{
//重写Thread中的run方法,设置线程任务
public void run() {
//获取线程名称的第二种方法
Thread t=Thread.currentThread();
System.out.println(t);
}}
//获取线程名称的第三种方法
public class MyThread extends Thread{
//重写Thread中的run方法,设置线程任务
public void run() {
//链式编程
System.out.println(Thread.currentThread().getName());
}}
main方法调用
public class Demo01GetThreadName {
public static void main(String[] args) {
//创建Thread类的子类对象
MyThread mt=new MyThread();
//调用start方法,开启新线程,执行run方法
mt.start();
new MyThread().start();
new MyThread().start();
new MyThread().start();
//获取主线程的名称
System.out.println(Thread.currentThread().getName());
}}

设置线程名称的方法

设置线程的名称:(了解)

1.使用 Thread类中的方法

setname(名字)void setname( String name)改变线程名称,使之与参数name相同。

2.创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,

让父类(Threσd)给子线程起一个名字Thread( String name)分配新的 Thread对象。

public class MyThread extends Thread{

public MyThread(){}

public MyThread(String name){

super(name);//把线程名称传递给父类,让父类(Thread)给子线程起一个名字

}

@Override

public void run() {

//获取线程的名称

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

}

}

package com.itheima.demo02.setName;

public class Demo01SetThreadName {

public static void main(String[] args) {

//开启多线程

MyThread mt = new MyThread();

mt.setName("哈嗨");

mt.start();

//开启多线程

new MyThread("乐迪").start();

}}

 






posted @ 2022-07-08 09:47  ja不会va  阅读(30)  评论(0)    收藏  举报