匿名内部类实现线程的两种方式
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());
以上是关于匿名内部类实现线程的两种方式的主要内容,如果未能解决你的问题,请参考以下文章