Runable和callable和comletableFuture原理
时间: 2023-07-15 17:09:58 浏览: 104
Runable接口-J2SE高级编程
Runnable、Callable 和 CompletableFuture 都是 Java 中用于多线程编程的接口或类,它们都可以用来实现异步处理,提高程序的并发性和性能。
Runnable 接口表示一个可执行的任务,它没有返回值,只是执行一些操作。它只有一个 run() 方法,需要在其中实现需要执行的代码逻辑。
Callable 接口也表示一个可执行的任务,但它可以有返回值。它只有一个 call() 方法,需要在其中实现需要执行的代码逻辑,并且需要返回一个结果。
CompletableFuture 是 Java 8 新增的异步编程工具,它是一种 Future 的扩展,提供了更多的异步编程操作。它可以处理异步任务的结果,也可以用于处理异步任务之间的依赖关系。它的基本用法是通过 CompletableFuture.supplyAsync() 方法创建一个异步任务,然后通过 thenApply()、thenAccept()、thenRun() 等方法来处理异步任务的结果。
这三者的实现原理都是基于线程池和 Future 实现的,其中 Runnable 和 Callable 是基于 FutureTask 实现的,而 CompletableFuture 则是基于 CompletableFuture 实现的。这些接口和类都是为了方便多线程编程而设计的,可以帮助我们更好地处理异步任务和提高程序的并发性和性能。
阅读全文