在 Java 并发编程中,、 和 是三个非常核心的接口。理解它们的区别和联系,是掌握 Java 多线程的关键。 简单来说: 和 是定义“任务”的接口,而 是用来获取“任务执行结果”的句柄(凭证)。 以下是它们的详细区别与解析: --- 1. Runnable(没有返回值的任务) 诞生时间:JDK 1.0 引入,是最古老的多线程接口。 核心方法: 特点: 无返回值:任务执行完了就完了,调用者无法直接获取执行结果。 不能抛出受检异常: 方法的签名没有 ,如果任务内部发生异常,必须在内部 消化掉,不能向外抛出。 执行方式:可以直接通过 执行,也可以提交给线程池()执行。 2. Callable(有返回值的任务) 诞生时间:JDK 1.5 引入(位于 包下),是为了弥补 的不足而设计的。 核心方法: 特点: 有返回值:支持泛型,任务执行完毕后可以返回一个具体的值。 能抛出异常:允许向上层抛出受检异常(Checked Exception),调用者可以捕获并处理。 执行方式:不能直接传给 执行,必须提交给线程池()执行,或者封装成 后再交给线程执行。 3. Future(异步结果的凭证) 概...