我们知道多线程的实现有两种方式,一种是继承Thread类,另一种是实现Runnable接口,然后再重写run方法,最后开启线程。我们在普通的创建线程中,显然是比较麻烦的,那么有没有一个简单的方法呢?今天给大家介绍使用匿名内部类创建线程,为什么要使用匿名内部类呢,因为使用它代码更简洁也更方便,同样地,它也有两种方式:下面我们来看第一种使用匿名内部类创建线程的方式:
1.首先我们要在一个类中new出一个继承Thread类;
2.然后重写run方法;
3.将我们要执行的代码写在run方法中。下面我们来看一个Demo案例:
package cn.edu.jit.thread;
/**
* 匿名内部类实现线程的两种方式
* @author kevin
*
*/
public class ThreadDemo04 {
public static void main(String[] args) {
/*
* 第一种方式:
* 1.继承Thread类
* 2.重写run方法
* 3.将要执行的代码写在run方法中
*/
new Thread() {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("aaaaaaaaa");
}
}
}.start();//开启线程
}
}
将new继承Thread类的花括号后面必须要.start()方法,说明该线程开启。
运行结果:
aaaaaaaaa
aaaaaaaaa
aaaaaaaaa
aaaaaaaaa
以上就是匿名内部类创建线程继承Thread类完成了,那么实现Runnable接口,我们该怎么做呢?
1.将Runnable的子类对象传递给Thread的构造方法;
2.重写run方法;
3.将执行的代码写在run方法中,最后我们开启线程。
下面我们继续看这个案例:
/*
* 第二种方式:
* 1.将Runnable的子类对象传递给Thread的构造方法
* 2.重写run方法
* 3.将执行的代码写在run方法中,最后我们开启线程
*/
new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("bbbbbbbbb");
}
}
}).start();//开启线程
运行结果:
bbbbbbbbb
bbbbbbbbb
bbbbbbbbb
bbbbbbbbb
以上就是介绍匿名内部类创建线程的两种方式。