在Java中实现多线程可以通过以下几种方式:
继承Thread类
创建该类的实例并调用start()方法启动线程。
class MyThread extends Thread {public void run() {// 线程执行的代码}}public class Main {public static void main(String[] args) {MyThread myThread = new MyThread();myThread.start();}}
实现Runnable接口
创建一个类实现Runnable接口,并实现run()方法。
创建实现了Runnable接口的类的实例,作为Thread类的构造函数参数,创建Thread对象并调用start()方法启动线程。
class MyRunnable implements Runnable {public void run() {// 线程执行的代码}}public class Main {public static void main(String[] args) {MyRunnable myRunnable = new MyRunnable();Thread thread = new Thread(myRunnable);thread.start();}}

实现Callable接口
创建一个类实现Callable接口,并实现call()方法。
使用FutureTask包装Callable对象,或者直接使用ExecutorService提交任务。
class MyCallable implements Callable{ public Integer call() {// 线程执行的代码,返回一个结果return 0;}}public class Main {public static void main(String[] args) throws ExecutionException, InterruptedException {ExecutorService executor = Executors.newSingleThreadExecutor();Futureresult = executor.submit(new MyCallable()); Integer value = result.get(); // 获取线程执行结果executor.shutdown();}}
使用线程池
通过创建线程池(如ExecutorService)来管理和复用线程。
提交任务到线程池,线程池会自动管理线程的创建和执行。
ExecutorService executor = Executors.newFixedThreadPool(5);executor.submit(() -> {// 线程执行的代码});executor.shutdown();
以上是Java中实现多线程的几种常见方法。选择哪种方法取决于具体的应用场景和需求。需要注意的是,多线程编程可能会引入复杂的同步问题,需要仔细考虑线程安全和资源管理
