创建多线程的两种方式:继承Thread类与实现Runnable接口
方式一:
1.继承Thread类
2.重写run方法
3.创建对象,调用start方法,开启新的线程,执行run方法
方式二:
1.创建一个Runnable接口的实现类
2.在实现类中重写Runnable接口的run方法,设置线程任务
3.创建一个Runnable接口的实现类对象
4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象
5.调用Thread类中的start方法,开启新的线程执行run方法
用的较多的是实现Runnable接口方式创建多线程,优点如下:
1.避免了单继承的局限性
继承了Thread类无法继承其它类
实现了Runnable接口,还可以继承其它的类,实现其它的接口
2.增强了程序的扩展性,降低了程序的耦合度(解耦)
实现Runnable接口的方式,把设置线程任务和开启新线程进行了分离(解耦)
实现类中,重写了run方法:用来设置线程任务
创建Thread类对象,调用start方法:用来开启新线程
代码如下
/*
匿名内部类创建多线程,简化代码
格式:
new 父类/接口(){
重写父类/接口中的方法
};
*/
public class InnerThread {
public static void main(String[] args) {
//继承Thread方式
new Thread(){
@Override
public void run() {
for (int i=0;i<20;i++) {
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}.start();
//实现线程接口Runnable方式
new Thread(new Runnable(){
@Override
public void run() {
for (int i=0;i<20;i++) {
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}).start();
}
}