使用匿名内部类创建线程的三种方法
话说匿名内部类是什么?
- 匿名:没有名字
- 内部类:写在其他类内部的类
言简意赅
匿名内部类的使用,最大的作用就是为了简化代码。
内部类实现格式:
new 父类/接口() {
重写父类/接口中的方法
};
/*
第一种
直接创建Thread类,重写他的run方法,并使用他的start()方法开启线程
*/
new Thread() {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName() + "-->" + "Nanase");
}
}
}.start();
/*
第二种
直接new Runnable接口并重写他的run()方法,然后将new的接口传入Thread的构造方法
中,最终使用Thread类的start()方法开启线程。
*/
Runnable runnable =new Runnable() {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName() + "-->" + "Mai");
}
}
};
new Thread(runnable).start();
/*
第三种
这一种是在第二种方法的简化版,不用再new Runnable接口然后再把创建的类名传入Thread的构造
参数中,可以直接new Thread类,然后将Runnable匿名内部类直接传入构造方法中,再使用start()
方法开启线程。
*/
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName() + "-->" + "Asuka");
}
}
}).start();