创建线程的方法
简介:
Java中实现多线程有四种方式:1. 继承Thread类,简单但占用继承机会,耦合度高;2. 实现Runnable接口,推荐方式,任务与线程解耦,支持Lambda;3. 实现Callable接口配合FutureTask,可获取返回值和异常;4. 使用线程池(ExecutorService),企业推荐,管理线程生命周期,提升性能,支持多种线程池类型。
- 继承 Thread 类
特点:直接继承 Thread 类,重写 run() 方法
简单直接,但占用唯一继承机会(Java 单继承)
线程与任务强耦合,不推荐主流使用
- 实现 Runnable 接口
特点:实现 Runnable 接口,实现 run() 方法
推荐使用:任务与线程解耦,可复用同一个任务对象
避免单继承限制,支持 Lambda 简化
可与线程池直接配合使用
- 实现 Callable 接口 + FutureTask
特点:实现 Callable 接口,重写 call() 方法
可获取返回值,支持抛出异常
通过 FutureTask 包装后交给 Thread 执行
常用于需要异步计算结果的场景
- 使用线程池 (ExecutorService)
特点:企业级推荐方案:通过线程池管理线程生命周期
避免频繁创建/销毁线程的开销
支持两种任务提交方式:
execute(Runnable task):无返回值
submit(Callable task):返回 Future 对象
提供多种线程池(如 FixedThreadPool, CachedThreadPool, ScheduledThreadPool)