Java实现多线程并发执行的方式有两种:继承Thread类和实现Runnable接口。
-
继承Thread类:
- 定义一个类,继承Thread类,重写run()方法,在run()方法中写入线程执行的逻辑。
- 创建线程对象,调用start()方法启动线程。
- 例子:
public class MyThread extends Thread { @Override public void run() { // 线程执行的逻辑 } } public class Main { public static void main(String[] args) { MyThread thread1 = new MyThread(); MyThread thread2 = new MyThread(); thread1.start(); thread2.start(); } }
-
实现Runnable接口:
- 定义一个类,实现Runnable接口,重写run()方法,在run()方法中写入线程执行的逻辑。
- 创建线程对象,将实现了Runnable接口的对象作为参数传入Thread类的构造方法中,调用start()方法启动线程。
- 例子:
public class MyRunnable implements Runnable { @Override public void run() { // 线程执行的逻辑 } } public class Main { public static void main(String[] args) { MyRunnable runnable1 = new MyRunnable(); MyRunnable runnable2 = new MyRunnable(); Thread thread1 = new Thread(runnable1); Thread thread2 = new Thread(runnable2); thread1.start(); thread2.start(); } }
这两种方式都可以实现多线程并发执行,但是实现Runnable接口的方式更常用,因为Java只支持单继承,如果已经继承了其他类,就无法再继承Thread类,而实现Runnable接口不会有这个问题。此外,使用Runnable接口还可以实现线程的资源共享,多个线程可以共享同一个Runnable对象的资源,实现更灵活的线程操作。