当前位置 : 主页 > 手机开发 > 其它 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-19
1 package cn.learn.thread.Thread; 2 /* 3 匿名内部类方式的实现线程的创建 4 5 匿名:没有名字 6 内部类:写在其他类的内部 7 8 作用:简化代码,不用单独写一个类,来设置线程任务 9 把子类继
 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 }
网友评论