Java——获取和设置多线程的名称

给名字进行赋值有两种方式:

  • 1,通过构造去赋值 Thread(String name) 直接在构造方法里面传一个名字就行了
  • 2,通过set设置的方法进行赋值
package com.yy.threadmethod;

public class Demo1_Name {
    public static void main(String[] args) {
        demo1();                                                        //通过构造方法给name赋值  
        demo2();                                                        //通过set设置的方法进行赋值
        demo3();                                                        //通过set设置的方法进行赋值
    }

    private static void demo3() {
        //public final void setName(String name)   改变线程名称,使之与参数 name 相同。
        Thread t1 = new Thread(){                                        //父类引用指向子类对象
            public void run(){
                System.out.println(this.getName() + "   xxxxx");
            }
        };
        //从new到; 整个都代表Thread的子类对象,相当于给Thread的子类对象起了个名字加 t1;这里的t1相当于demo2里面的this

        Thread t2 = new Thread(){
            public void run(){
                System.out.println(this.getName() + "  qqqqq");
            }
        };
        //从new到; 整个都代表Thread的子类对象,相当于给Thread的子类对象起了个名字加 t2;这里的t2相当于demo2里面的this

        t1.setName("yy");
        t2.setName("wsq");

        t1.start();
        t2.start();
    }

    private static void demo2() {
        //public final void setName(String name)   改变线程名称,使之与参数 name 相同。
        new Thread(){
            public void run(){
                this.setName("黄贯中");                                    //这是条语句,语句必须写到方法里
                System.out.println(this.getName() + "   xxxxx");
            }
        }.start();

        new Thread(){
            public void run(){
                this.setName("叶世荣");                                    //这是条语句,语句必须写到方法里
                System.out.println(this.getName() + "   QQQQQQ");
            }
        }.start();
    }

    private static void demo1() {                                       //使用匿名内部类
        //public Thread(String name)   参数:name - 新线程的名称。
        new Thread("黄家驹"){                                              //通过构造方法给name赋值,设置线程的名称
            public void run(){
                System.out.println(this.getName() + "   aaaaaa");       //这里的this就相当于匿名内部类对象,this就是谁来调用我,我就代表谁,相当于使用匿名内部类对象来调用getName();从而获取线程名称
            }
        }.start();                                                      //开启线程
        //这是一个线程,线程名称为:黄家驹

        new Thread("黄家强"){
            public void run(){
                System.out.println(this.getName() + "   hjj");
            }
        }.start();
        //这也是一个线程,线程名称为:黄家强
    }
    //线程有默认的名称:Thread-0   后面的序号从0开始,以此类推
}

你可能感兴趣的:(Javaweb小笔记)