1 package cn.learn.thread.Thread;
2 /*
3 匿名内部类方式的实现线程的创建
4
5 匿名:没有名字
6 内部类:写在其他类的内部
7
8 作用:简化代码,不用单独写一个类,来设置线程任务
9 把子类继承父类,重写父类方法,创建子类对象合成一部完成
10 或者实现类实现接口,重写接口方法,创建实现类对象一部完成
11 匿名内部类的最终产物:子类/实现类对象,没有名字
12
13 格式:
14 new 父类/接口{
15 重写父类/接口方法
16 }
17
18 */
19 public class InnerClassThread {
20 public static void main(String[] args) {
21 //已知父类线程是Thread,继承类
22 new Thread("线程1"){
23 //重写run方法设置线程任务
24
25 @Override
26 public void run() {
27 for (int i = 0; i < 20; i++) {
28 System.out.println(Thread.currentThread().getName());
29
30 }
31 }
32 }.start(); //开启线程
33
34
35 //实现接口,多态 Runnable runnableThread = new RunnableImpl();
36 Runnable run=new Runnable(){
37 //重写run方法,设置线程任务
38 @Override
39 public void run() {
40 for (int i = 0; i < 20; i++) {
41 System.out.println(Thread.currentThread().getName());
42 }
43 }
44 };
45 //开启实现类的多线程,设置名字
46 new Thread(run,"线程二").start();
47
48 //上述代码再简化
49 new Thread(new Runnable(){
50 //重写run方法,设置线程任务
51 @Override
52 public void run() {
53 for (int i = 0; i < 20; i++) {
54 System.out.println(Thread.currentThread().getName());
55 }
56 }
57 },"线程三").start();
58
59 }
60 }