在Java中,创建多线程主要有两种方法:
继承Thread类
创建一个类继承自`Thread`类。
重写`run()`方法,该方法中定义线程要执行的任务。
创建该类的实例对象,并调用`start()`方法启动线程。
public class MyThread extends Thread {
@Override
public void run() {
// 线程执行逻辑
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
实现Runnable接口
创建一个类实现`Runnable`接口。
实现`run()`方法,该方法中定义线程要执行的任务。
创建实现类的实例对象。
将实现类的实例对象作为参数传递给`Thread`类的构造方法创建线程对象。
调用线程对象的`start()`方法启动线程。
public class MyRunnable implements Runnable {
@Override
public void run() {
// 线程执行逻辑
}
}
public class Main {
public static void main(String[] args) {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
}
}
注意事项:
当继承`Thread`类时,多个线程间无法共享线程类的实例变量,因为每个线程对象都是独立的。
当实现`Runnable`接口时,可以实现线程之间的资源共享,因为所有线程都共享同一个`Runnable`实例。
除了上述两种方法,Java还提供了`ExecutorService`、`Callable`和`Future`等更高级的线程管理工具,用于创建和管理线程池以及处理有返回值的任务