`
bluethinking
  • 浏览: 3700 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Futures 和 Promises

 
阅读更多

       维基百科:在计算机科学里,future、promise和delay指的是在某些并发编程语言里用于同步的构造。它们描述一个为最初未知的结果充当代理的对象,通常因为它的值的计算还是不完整的。

       术语future、promise和delay经常可交换地使用,虽然接下来将对待在future和promise之间一些用法上得不同点。具体来说,当用法有区别时,future是只读变量的占位符视图,然而promise是可写的,设置future值的单赋值容器。尤其,future可能定义为不指定具体的设置它的值的promise,和不同的合适的promises可以设置给定的future的值,尽管对于给定的future这只能做一次。在其他情况下future和promise一起创建并且彼此关联:future是值,promise是设置值 —— 本质上是一个异步函数(promise)的返回值(future)的函数。设置future的值也被称为resolving(解析)、fulfilling(实现)或者binding(绑定)它。

        实现:Java通过java.util.concurrent.Future、JavaScript从ECMAScript6起等。

        非标准库基于futures的实现:

暂时整理这部分,后续具体的库和详细的分析留待补充。

分享到:
评论

相关推荐

    scala futures and promises

    ### Scala Futures and Promises 实践入门 #### 凤凰木 #### September 14, 2018 在本文档中,我们将通过一系列实例来探讨Scala中的`Future`和`Promise`的概念,并与Java中的多线程技术进行对比。这些概念是函数式...

    Ruby-ConcurrentRuby现代并发工具

    本文将深入探讨`Concurrent Ruby`中的核心概念和组件,包括Agents、Futures、Promises和Thread Pools,以及Supervisors,帮助你更好地理解和运用这些工具。 一、Agents 在`Concurrent Ruby`中,Agent是一种线程安全...

    scalaDemo_DEMO_scalademo_scala_

    这些标签暗示了压缩包中的内容可能包括基础语法、类和对象、模式匹配、高阶函数、集合操作、 Actors模型、 Futures和Promises等常见Scala编程主题。 压缩包内的文件名为"scalaDemo",这可能是一个单一的源代码文件...

    Scala技术分享

    7. ** Futures和Promises**:Scala提供了Futures和Promises,用于异步编程,它们可以帮助处理回调地狱,提高代码的可读性和可维护性。 8. ** Shapeless**:Shapeless是一个元编程库,为处理泛型提供高级工具,如...

    scala2.10.6

    5. ** Futures 和 Promises**:Scala 2.10引入了Futures和Promises,为异步编程提供了一种强大的机制。它们允许在非阻塞环境中管理复杂的交互。 6. ** Scalactic 和 ScalaTest**:2.10.6版本通常与这些测试框架一起...

    Learning Concurrent Programming in Scala

    futures和promises是Scala中处理异步操作的抽象。futures代表一个可能尚未完成的异步计算过程,而promises是一个可以被一个或多个futures所观察的容器。通过使用这些抽象,开发者可以在不阻塞当前线程的情况下执行...

    scala 案例

    9. ** Futures 和 Promises**:Scala提供了异步编程的支持,Futures表示一个可能还未完成的计算结果,Promises则用来创建Futures。 10. **类型类**:类型类是一种设计模式,允许在运行时为类型添加功能,而不必使用...

    基于folly、wangle和proxygen的c++11基础库.zip

    1. **多线程和并发支持**:folly提供了线程池、锁free的数据结构和异步I/O模型,如Futures和Promises,便于实现高效的并发编程。 2. **内存管理**:folly包含了一套智能指针和内存池,可以优化内存分配和释放,减少...

    scala-2.10.7.zip,scala-2.11.11.zip

    3. **并发和并行性**:增加了 Futures 和 Promises,为编写并发和并行程序提供了便利。 4. **宏支持**:引入了宏,允许开发者在编译时生成代码,提高了代码生成和元编程的能力。 Scala-2.11.x系列是后续的版本,此...

    scala-2.11.8

    Scala 2.11.8支持异步编程模型,如 Futures 和 Promises,这对于构建响应式的、非阻塞的应用程序至关重要。 10. 性能提升: Scala 2.11.8对内存管理和垃圾收集进行了优化,提升了大规模并发场景下的性能。 总的...

    scala实战高清讲解

    - Futures和Promises:Futures用于异步计算,而Promises用于创建Futures,两者结合能有效地处理并发任务。 5. **集合库** - 集合API:Scala的集合库强大且高效,包含各种数据结构如List、Set、Map和ArrayBuffer,...

    Akka Scala Documentation Release 2.4

    此外,Akka还支持Futures和Promises,使得异步编程变得更加简单和直观。 其次,Akka的路由机制是其强大功能的一部分。它可以将消息智能地分发到一组子Actor中,例如广播、轮询或根据特定规则选择接收者。这种路由...

    scala程序设计中英文非扫描版

    在Scala中,可以使用 Futures 和 Promises 来处理异步操作,或者利用Scala集合库的并行操作,如par方法,轻松地将顺序代码转换为并行代码,从而充分利用多核处理器的计算能力。 压缩包中的两个PDF文件"Scala程序...

    Programming In Scala 中文版及英文版

    14. ** Futures和Promises**:用于异步编程,Futures代表一个将来完成的计算结果,Promises则用于发起异步操作。 15. **类型系统高级特性**:包括类型参数的上下界、协变和逆变、路径依赖类型等,使得Scala能够实现...

    scala-intellij-bin-2018.1.8.zip

    2. 响应式编程:通过 Futures 和 Promises 支持异步编程,简化并发处理。 3. 不可变数据结构:Scala 提供了丰富的不可变集合,确保了数据的安全性。 此外,Scala还具有以下特点: 1. 类与对象统一:Scala中一切皆为...

    快学Scala完整版&Scala编程(中文版)&Scala程序设计-多线程编程实践

    书中可能详细讲解了Scala如何利用JVM的并行能力,比如使用 Futures 和 Promises 实现异步编程,通过 Actors 实现消息驱动的并发,以及如何利用 Scala 的并发原语如 `Await`、`Promise` 和 `Future` 来编写高效、安全...

    rxjava-groovy-0.7.0.zip

    在Scala中,异步编程通常通过 Futures 和 Promises 进行,但RxJava提供了一种不同的模式,即观察者模式。它将事件源(Observable)和事件订阅者(Observer)之间的交互抽象出来,形成了一种反应式编程风格。这种风格...

    图灵书籍(Scala程序设计(第2版).pdf+Scala程序设计-JAVA虚拟机多核编程实战.pdf)

    4. **并发编程**:Scala的Actor模型、Futures和Promises,以及如何使用它们构建并发应用程序。 5. **JVM多核编程**:线程管理和同步、锁与条件变量、非阻塞并发、Java内存模型(JMM)以及性能优化技巧。 6. **Akka...

Global site tag (gtag.js) - Google Analytics