Thread类的常用方法_获取线程名称的方法与Thread类的常用方法_设置线程名称的方法

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

线程创建

在上一天内容中我们已经可以完成最基本的线程开启,那么在我们完成操作过程中用到了java.lang.Thread类,API中该类中定义了有关线程的一些方法,具体如下∶

构造方法

public Thread():分配一个新的线程对象。
public Thread(String name):分配一个指定名字的新的线程对象。
public Thread(Runnable target) :分配一个带有指定目标新的线程对象。
public Thread(Runnable target ,String name) :分配一个带有指定目标新的线程对象并指定名字。

常用方法

public string getName()`:获取当前线程名称。
public void start() :导致此线程开始执行;Java虚拟机调用此线程的run方法。
public void run():此线程要执行的任务在此处定义代码。 public static void sleep(long millis) :使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)。
public static Thread currentThread():返回对当前正在执行的线程对象的引用。

翻阅API后得知创建线程的方式总共有两种,一种是继承Thread类方式,一种是实现Runnable接口方式,方式一我们上一天已经完成,接下来讲解方式二实现的方式。

 

package Demo_MainThread;
/*
获取线程的名称:
1.使用Thread类中的方法getName()
string getName()返回该线钱程的名称。
2.可以先获取到当前正在执行的线程,使用线程中的方法getName()获取线程的名称
static Thread currentThread()返回对当前正在执行的线程对象的引用。
 */

//定义一个Thread类的子类
public class Demo03_MyThread extends Thread {
    //重写Thread类中的run方法,设置线程任务

    @Override
    public void run() {
        //获取线程名称
//        String name  =getName();
//        System.out.println(name);

//        Thread t =Thread.currentThread();
//       System.out.println(t); Thread[Thread-0,5,main]
//        String name = t.getName();
//        System.out.println(name);
            //链式编程
        System.out.println(Thread.currentThread().getName());
    }
}

 

 

package Demo_MainThread;
/*
            线程的名称
                    主线程:main
                    新线程:Thread-0,Thread-1,Thread-2

 */
public class Demo01GetThreadName {
    public static void main(String[] args) {
        //创建Thread类的子对象
        Demo03_MyThread thread = new Demo03_MyThread();
        //调用start方法,开启新线程,执行run方法
        thread.start();

        new Demo03_MyThread().start();
        new Demo03_MyThread().start();

        //链式编程
        System.out.println(Thread.currentThread().getName());

    }
}

 

Thread类的常用方法_设置线程名称的方法

package Demo_MainThread;
/*
设置线程的名称:(了解)
    1.使用Thread类中的方法setName(名字)
           void setName( String name)改变线程名称,使之与参数name相同。
    2创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让父类(Thread)给子线程起一个名字
        Thread(String name)分配新的Thread对象。
 */
public class Demo04_MyThread extends Thread{

    public Demo04_MyThread(){}

    public Demo04_MyThread(String name){
        super(name);//把线程名称传递给父类,让父类(Thread)给子线程起一个名
    }

    @Override
    public void run() {
        //获取线程的名称
        System.out.println(Thread.currentThread().getName());
    }
}

 

 

package Demo_MainThread;

public class Demo_04SetThreadName {
    public static void main(String[] args) {
            //开启多线程
        Demo04_MyThread thread = new Demo04_MyThread();
        thread.start();
        thread.setName("小强");

        //开启多线程
        new Demo04_MyThread("马可波罗").start();
    }
}

 

posted @ 2022-07-07 17:56  zj勇敢飞,xx永相随  阅读(58)  评论(0编辑  收藏  举报