Java 开启多线程常见的4种方法如下:
创建一个继承自 Thread 类的子类,并重写 run() 方法。然后通过创建该子类的对象来开启线程。
class MyThread extends Thread {
public void run() {
// 线程执行的代码
}
}
// 创建线程对象并开启线程
MyThread thread = new MyThread();
thread.start();
创建一个实现了 Runnable 接口的类,并实现 run() 方法。然后通过创建该类的对象,并将其传递给 Thread 的构造函数来开启线程。
class MyRunnable implements Runnable {
public void run() {
// 线程执行的代码
}
}
// 创建线程对象并开启线程
Thread thread = new Thread(new MyRunnable());
thread.start();
创建一个实现了 Callable 接口的类,并实现 call() 方法。然后创建一个 FutureTask 对象,将 Callable 对象作为参数传递给 FutureTask 的构造函数。最后通过创建 Thread 对象,将 FutureTask 对象作为参数传递给 Thread 的构造函数来开启线程。
class MyCallable implements Callable<Integer> {
public Integer call() throws Exception {
// 线程执行的代码
return 1;
}
}
// 创建 Callable 对象和 FutureTask 对象
Callable<Integer> callable = new MyCallable();
FutureTask<Integer> futureTask = new FutureTask<>(callable);
// 创建线程对象并开启线程
Thread thread = new Thread(futureTask);
thread.start();
使用 Executors 类提供的静态方法创建一个线程池对象,然后将需要执行的任务提交给线程池进行处理。
ExecutorService executorService = Executors.newFixedThreadPool(10);
Runnable task = new Runnable() {
public void run() {
// 线程执行的代码
}
};
// 提交任务给线程池处理
executorService.submit(task);
// 关闭线程池
executorService.shutdown();