匿名内部类方式实现线程的创建
# 匿名内部类方式实现线程的创建
使用线程的内匿名内部类方式,可以方便的实现每个线程执行不同的线程任务操作,简化代码。
匿名内部类的最终产物:子类/实现类的对象,而这个类没有名字
格式:
new 父类/接口(){
// 重写父类/接口中的方法
}
1
2
3
2
3
接下来我们实践下:
package chapter200Thread;
public class Demo07InnerClassThread {
public static void main(String[] args) {
// 方式一
new Thread(){
@Override
public void run() {
for (int i = 0; i < 20; i++){
System.out.println(Thread.currentThread().getName() + " --> " + "继承Thread方式");
}
}
}.start();
// 方式二
Runnable r = new Runnable() {
@Override
public void run() {
for (int i = 0; i < 20; i++){
System.out.println(Thread.currentThread().getName() + " --> " + "实现接口方式");
}
}
};
new Thread(r).start();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
运行结果:交替执行
Thread-0 --> 继承Thread方式
Thread-1 --> 实现接口方式
Thread-0 --> 继承Thread方式
Thread-1 --> 实现接口方式
....
1
2
3
4
5
2
3
4
5
方式二可以简化下:
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 20; i++){
System.out.println(Thread.currentThread().getName() + " --> " + "实现接口方式");
}
}
}).start();
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
除此之外,还可以用 Lambda 表达式简化。
(完)
上次更新: 2024/10/1 19:22:42