clojure里的future和promise

一直看到这两个名词,似乎在netty的源码里经常看到,但是并不特别清楚他们的含义,所以非常好奇。

在clojure里future,带着一个函数,和函数的参数,最后返回一个值,会在一个单独的线程中执行,会新开一个线程,而并不是虚拟线程。

promise则是运用future的一个东西,future带的函数里面会有promise值,而这个promise这个时候是没有具体值的,所以这个时候future创建的线程会阻塞。在我们delivery promise的值之后,也就是给这个promise值之后,这时候future的线程会开始执行。

从名字上理解,future返回一值,说是在不久的将来能够计算出来。promise则是future里函数带的参数,承诺在某个时间会给出具体的值,然后future创建的线程就可以工作了。

那么future和promise又有什么作用呢?我是觉得future的主要作用是创建线程。promise的作用是把多个future组合起来。  

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容