java实现多线程有哪几种方式?
1. 继承Thread
- 用法:继承
Thread
,重写里面的run()
方法,创建实例,执行start()
方法。 - 优点:代码编写最简单,直接操作
- 缺点:没有返回值,继承一个类后没法继承其他的类,拓展性差。
public class ThreadDemo1 extends Thread {
@Override
public void run() {
System.out.println("继承Thread实现多线程,名称:"+Thread.currentThread().getName());
}
}
public static void main(String[] args) {
ThreadDemo1 threadDemo1 = new ThreadDemo1();
threadDemo1.setName("demo1");
// 执行start
threadDemo1.start();
System.out.println("主线程名称:"+Thread.currentThread().getName());
}
2. 实现Runnable接口
- 用法:自定义类实现
Runnable
接口,实现里面的run()
方法,创建Thread
类,使用Runnable
接口的实现对象作为参数传递给Thread
对象,执行其start()
方法。 - 优点:线程类可以实现多个接口,可以再继承一个类。
- 缺点:没有返回值,不能直接启动,需要通过构造一个
Thread
实例,将接口实现对象传递进去。
public class ThreadDemo2 implements Runnable {
@Override
public void