首页 > 解决方案 > 求Java标准库中异步方法的例子

问题描述

我想在 Java 标准库中找到一个方法的示例,该方法将回调作为参数,立即返回,并在完成任务时调用回调。例如,您可以想象一种从键盘获取用户输入的方法,该方法立即返回,但在输入输入后调用回调。

下一个最好的方法是在完成任务时调用侦听器。Android SDK 中的一个示例是SoundPool.load()SoundPool.setOnLoadCompleteListener()

我不认为 Swing 方法addActionListener()是示例,因为该方法的目的是添加侦听器。触发事件是完全独立的。

我的动机是准备关于 Java I/O 的讲座,并希望对比以下方法:(1) 阻塞,(2) 有或没有数据立即返回,或 (3) 使用回调。

标签: javaasynchronous

解决方案


Java 标准库通常使用Future抽象而不是回调作为核心构建块。如果要构建“基于回调”的结构,则可以使用(通常)then*上的方法。CompletionStageCompletableFuture

这种结构允许调用者如何处理异步结果的灵活性;例如,我在用于构建复合结果的多个下游 API 调用上使用它进行分散收集。


推荐阅读