介绍
有时候我们只需要一个线程运行一次,那么我们可以使用匿名内部类创建线程的方法来创建线程。
三种创建方法
1.Thread子类匿名内部类
代码演示如下:
public static void main(String[] args) {
new Thread() {
@Override
public void run() {
for (int i = 0; i < 50; i++) {
System.out.println("这是Thread子类的匿名内部类创建线程--->" + i);
}
}
}.start();
}
2.Runnable接口匿名内部类
代码演示如下:
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 50; i++) {
System.out.println("这是实现Runnable接口的匿名内部类-->" + i);
}
}
}).start();
}
3.Thread子类和Runnable接口一起使用
注意:这种方式实际开发中,没有人使用,很无聊,但是面试可能会问到,究竟start()
哪个线程?
就近原则:运行Thread子类覆写run()
方法的线程。
代码演示如下:
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("这是实现Runnable接口的匿名内部类");
}
}) {
@Override
public void run() {
System.out.println("这是Thread子类覆写run方法的匿名内部类");
}
}.start();
}
//输出:这是Thread子类覆写run方法的匿名内部类