Java 开启多线程常见的4种方法如下:
- 继承 Thread 类:
创建一个继承自 Thread 类的子类,并重写 run() 方法。然后通过创建该子类的对象来开启线程。
class MyThread extends Thread { public void run() { // 线程执行的代码 } } // 创建线程对象并开启线程 MyThread thread = new MyThread(); thread.start();
- 实现 Runnable 接口:
创建一个实现了 Runnable 接口的类,并实现 run() 方法。然后通过创建该类的对象,并将其传递给 Thread 的构造函数来开启线程。
class MyRunnable implements Runnable { public void run() { // 线程执行的代码 } } // 创建线程对象并开启线程 Thread thread = new Thread(new MyRunnable()); thread.start();
- 使用 Callable 和 FutureTask:
创建一个实现了 Callable 接口的类,并实现 call() 方法。然后创建一个 FutureTask 对象,将 Callable 对象作为参数传递给 FutureTask 的构造函数。最后通过创建 Thread 对象,将 FutureTask 对象作为参数传递给 Thread 的构造函数来开启线程。
class MyCallable implements Callable{ public Integer call() throws Exception { // 线程执行的代码 return 1; } } // 创建 Callable 对象和 FutureTask 对象 Callable callable = new MyCallable(); FutureTask 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();