Java——获取当前线程的对象(currentThread())(两种方式)

package com.yy.threadmethod;

public class Demo2_CurrentThread {
/**
 *  public static Thread currentThread()返回对当前正在执行的线程对象的引用。 
 *  返回:当前执行的线程。返回的是一个Thread
 *  该方法主要是为了协助  实现通过Runnable接口来对线程进行设置和获取线程的名称的
 * */
    public static void main(String[] args) {
        new Thread (){                                          //匿名内部类;public void start()是Thread类中的方法;new Thread (){}继承Thread这个类
            public void run(){
                System.out.println(this.getName() + "   aaaaa");  
            }
        }.start();                                              //开启一个线程
        //第一个线程


        new Thread(new Runnable(){                              //new Runnable(),实现Runnable接口;new Runnable(){...}这些是Runnable的的一个子类对象,并不是Thread的子类对象,所以不能直接使用Thread类中的方法
        //若非得想要getName()这个方法,得想法获取当前正在执行的线程,通过currentThread(),来获取,它是静态的方法,所以直接    类名.   调用即可
            public void run(){                                  //重写run方法
                System.out.println(Thread.currentThread().getName() + "   bbbbb");
        //public static Thread currentThread():返回对当前正在执行的线程对象的引用 。也就是   获取到当前正在执行的线程,然后在通过getName()方法,拿到名字
        //Thread.currentThread():表示获取到当前正在执行的线程,然后在通过  .getName() 来获取线程的名称
        //然后将  new到.start()之间的内容当成参数传给Thread的构造方法(new Thread())就可以啦
            }
        }).start();                                             //然后,通过.start()方法,开启线程
        //第二个线程



        //写在主线程这个方法里面了,就意味着获取主线程的名称
        Thread.currentThread().setName("我是主线程");                //设置主线程的名称          
        //第三个线程,也就是主线程
        System.out.println(Thread.currentThread().getName());   //获取主线程的名称
    }

}

猜你喜欢

转载自blog.csdn.net/qq_41264055/article/details/81240761