匿名内部类实现线程的两种方式

Posted yaobiluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了匿名内部类实现线程的两种方式相关的知识,希望对你有一定的参考价值。

 匿名内部类的使用:  匿名内部类就相当于是   创建了一个子类对象: 编译时看父类,即Thread类,运行时看子类,及重写的run()方法

1、  继承Thread 

public class demon1 
    public static void main(String[] args) 
        Thread t1 = new Thread()         //  t1是一个线程对象,  暂时没有线程名。  可以通过t1.setName(name)设置线程名   
            @Override
            public void run() 
                System.out.println(this.getName() + ".......aaaaaa");
                super.run();
            
            
        ;
        new Thread()       //   可以在构造方法里传入一个值,这个值就是线程名
            @Override
            public void run() 
                this.setName("lisoi");   // 在方法里  设置线程名
                System.out.println(this.getName() + "......bb");
                super.run();
            
            
        .start();
        t1.setName("zhangsan");
        t1.start();
    

 

 

2、实现Runnable接口

public class demon2_currentThread 

    public static void main(String[] args) 
        new Thread("t1")    //  直接传入 线程名字

            @Override
            public void run() 
                System.out.println(getName() + "......aaaa");    //  getName() 获取线程名
                
            
            
        .start();   //  start 直接开启线程        
        new Thread(new Runnable()
            public void run() 
                System.out.println(Thread.currentThread().getName()+ "......bb"); 
               //  Runnable接口方式的多线程,不能直接调用Thread 的方法 , 需要通过Thread.currentThread()   返回对当前正在执行的线程的对象的引用。  再来调用Thread的方法
            
        ).start();
        System.out.println(Thread.currentThread().getName());       
    

 

以上是关于匿名内部类实现线程的两种方式的主要内容,如果未能解决你的问题,请参考以下文章

Java线程Thread使用匿名内部类创建的两种方式

关于匿名内部类实现的两种方法

Java中接口式的匿名内部类的构造方法

线程--匿名内部类实现多线程的2种方式

Java中 实现多线程成的三种方式(继承,实现,匿名内部类)

匿名内部类创建线程,简化线程创建代码