异步编程模式 Future Promise

493次阅读  |  发布于8月以前

异步编程模式,多数都是采用 Future、Promise 模型。- 所谓 Future 是一个指向将来某个时刻会确定的值的只读引用。

Promise 代表了一个可能还未完成的操作或计算的承诺,而 Future 则为我们提供了一个观察和等待这个承诺兑现的窗口。

这个概念可以用人际关系中的承诺来类比:如果你对某人做出了承诺(Promise),那么履行承诺的责任在你;反之,如果别人对你做出承诺,你则期待在未来(Future)他们能够兑现。

编程语言内部的实现方式也不复杂,可以用生产者-消费者模式

以C#为例,首先定义一个双方可用的生产资料对象 Task。

需要异步的线程是生产者,负责生产这个对象,在线程结束时修改对象的完成状态。

发起异步的线程是消费者,可以查看 Task 的完成状态,但不能修改。

异步线程直接返回 Task 这个对象给发起线程,保证了发起线程不会等待异步线程执行完成后再继续运行。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8