future 和callback的区别

作者&投稿:尤支 (若有异议请与网页底部的电邮联系)
promises和callback的区别~

Promise
承诺
callback
英 [ˈkɔ:lbæk] 美 [ˈkɔlˌbæk]
n.
回收,回叫信号,复查

并发编程 Promise, Future 和 Callback
在并发编程中,我们通常会用到一组非阻塞的模型:Promise,Future 和 Callback。其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这个结果可以添加 Callback 以便在任务执行成功或失败后做出对应的操作,而 Promise 交由任务执行者,任务执行者通过 Promise 可以标记任务完成或者失败。 可以说这一套模型是很多异步非阻塞架构的基础。
这一套经典的模型在 Scala、C# 中得到了原生的支持,但 JDK 中暂时还只有无 Callback 的 Future 出现,当然也并非在 JAVA 界就没有发展了,比如 Guava 就提供了ListenableFuture 接口,而 Netty 4+ 更是提供了完整的 Promise、Future 和 Listener 机制,在 Netty 的官方文档 Using as a generic library 中也介绍了将 Netty 作为一个 lib 包依赖,并且使用 Listenable futures 的示例。在实际的项目使用中,发现 Netty 的 EventLoop 机制不一定适用其他场景,因此想去除对 EventLoop 的依赖,实现一个简化版本。
希望对你有帮助~

此类可取消的异步计算。利用开始和取消计算的方法、查询计算是否完成的方法和检索计算结果的方法,此类提供

在并发编程中,我们通常会用到一组非阻塞的模型:Promise,Future 和 Callback。其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这个结果可以添加 Callback 以便在任务执行成功或失败后做出对应的操作,而 Promise 交由任务执行者,任务执行者通过 Promise 可以标记任务完成或者失败。 可以说这一套模型是很多异步非阻塞架构的基础。


海东地区18827743210: future 和callback的区别 -
舒易复方: 在并发编程中,我们通常会用到一组非阻塞的模型:Promise,Future 和 Callback.其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这个结果可以添加 Callback 以便在任务执行成功或失败后做出对应的操作,而 Promise 交由任务执行者,任务执行者通过 Promise 可以标记任务完成或者失败. 可以说这一套模型是很多异步非阻塞架构的基础.

海东地区18827743210: 英语时态,将来完成时和将来完成进行时的区别 -
舒易复方: 前者将来完成时表示到那个月底工作结束,以后不再在这里工作了.后者表示,以后还要继续在这里工作下去

海东地区18827743210: future是什么意思中文 -
舒易复方: adj. 将来的 n. 将来,前程,期货 用法;1. future可以有in future,in the future和for the future等表达方式,但是没有for future一说:in future和for the future一般表示全部的将来,而in the future一般表示将来的某一时期.for the future常暗含“与以前不...

海东地区18827743210: java多线程中的callable和future常用在哪些地方 -
舒易复方: 运行Callable任务可以拿到一个Future对象,表示异步计算的结果.用于Java多线程开发 工具/原料 Java IDE 方法/步骤 import java.util.HashSet; import java.util.Set; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; ...

海东地区18827743210: js中callback.call和callback的区别 -
舒易复方: callback是一个函数对象.callback.call是这个函数对象的一个方法.假如callback这个函数有3个参数a,b, c 你可以用以下3种方法执行它 callback(a,b,c) callback.call(null,a,b,c) callback.apply(null,[a,b,c]) 其中null的位置传的是函数内部所使用的this.

海东地区18827743210: js中callback.call()和callback()的区别 -
舒易复方: callback是回调函数.函数有call和apply方法.可以在函数执行时动态的绑定上下文.因为你这里callback.call()没有传入任何参数.因此callback.call()跟callback()是等价的.没有任何不同.函数的上下文主要影响函数中的this对象.正常情况下this对象是根据运行上下文自动指定的.但是用call方法或者apply方法可以手动设置上下文.相当于可以随意调整函数中的this对象指向谁.

海东地区18827743210: java 怎么获得线程结束通知 -
舒易复方: 那是你自己定义的,如下,那个XXX就是你想要结束时的状况 @Override public void run() {while (true) {try {Thread.sleep(1000);if(xxx){break;}} catch (InterruptedException e) {e.printStackTrace();}} }

海东地区18827743210: java中怎样得到线程结束的通知? -
舒易复方: 使用 Google Guava 提供的 ListeningExecutorService 启动线程会返回一个 ListenableFuture,然后实现它的执行完的回调接口,就可以监听线程完成的状态,如下代码: ListenableFuturefuture = null; Futures.addCallback(future, new FutureCallback { public void onSuccess(XX result) {//线程执行完的回调接口 xx(result); } public void onFailure(Throwable t) {//线程执行失败的回调接口 reportError(t); } });

海东地区18827743210: future有复数吗,不同的未来,different future要+S吗 -
舒易复方: 翻译如下:future有复数 different future要+S 例句:We have a different background, a different history. Accordingly, we havethe right to different futures 我们有不同的背景和不同的历史.因此,我们有权拥有不同的未来.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网