在Java中编写多线程程序,可以通过以下两种方式:
- 继承Thread类并重写run()方法
可以定义一个类继承Thread类,并重写run()方法,在run()方法中编写需要并发执行的代码逻辑。调用start()方法即可启动一个新线程。
示例代码:
public class MyThread extends Thread {
@Override
public void run() {
// 编写需要并发执行的代码逻辑
}
}
// 启动线程
MyThread thread = new MyThread();
thread.start();
- 实现Runnable接口
可以定义一个类实现Runnable接口,并重写run()方法,在run()方法中编写需要并发执行的代码逻辑。调用start()方法即可启动一个新线程。
示例代码:
public class MyRunnable implements Runnable {
@Override
public void run() {
// 编写需要并发执行的代码逻辑
}
}
// 启动线程
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start();
两种方式的区别:
继承Thread类的方式比实现Runnable接口的方式简单,但是如果需要继承其他类或者需要实现多继承,则只能使用实现Runnable接口的方式。另外,实现Runnable接口的方式更适合资源共享的情况,因为多个线程可以共享同一个Runnable实例。