MST

星途 面试题库

面试题:Java异步编程中CompletableFuture的常用方法及应用场景

请阐述在Java异步编程里CompletableFuture类的几个常用方法,比如thenApply、thenAccept、thenRun等,并且说明每个方法适用的场景。
20.3万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

thenApply

  • 方法说明:接收一个Function类型的参数,该函数会处理上一个CompletableFuture任务的返回值,并返回一个新的CompletableFuture,新的CompletableFuture的结果就是Function处理后的返回值。
  • 适用场景:当需要对异步任务的结果进行转换操作时使用。例如,异步从数据库读取用户ID,然后通过这个ID去查询用户详细信息,将ID转换为用户详细信息对象。

thenAccept

  • 方法说明:接收一个Consumer类型的参数,该消费者会处理上一个CompletableFuture任务的返回值,但不会返回新的结果,返回的CompletableFuture的结果为Void。
  • 适用场景:当只需要对异步任务的结果进行消费处理,而不需要返回新的结果时使用。比如,异步下载文件完成后,对文件进行保存操作,不需要返回保存操作的额外结果。

thenRun

  • 方法说明:接收一个Runnable类型的参数,该Runnable没有参数,它会在当前CompletableFuture任务完成后执行,同样返回的CompletableFuture结果为Void。
  • 适用场景:当某个异步任务完成后,需要执行另外一个无参数且无返回值的操作时使用。例如,异步计算完成后,记录一条日志,告知计算完成,记录日志操作不需要输入参数也不需要返回值。