线程技术可以让我们的程序同时做多件事情,线程的工作模式有很多,常见的一种模式就是处理网站的并发,今天我来说说线程另一种很常见的模式,这个模式和前端里的ajax类似:浏览器一个主线程执行javascript,页面渲染等操作,当我们使用ajax向服务端发起请求,由于这个过程很慢,ajax的异步模式可以让 ...
分类:
编程语言 时间:
2016-06-22 22:07:50
阅读次数:
218
多核CPU充分利用CPU性能,就需要使用多线程并行挖掘CPU的潜力,并行程序设计对常用的多线程结构进行抽象,总结出几种典型多线程开发设计模式。
一、future 模式——精彩无需等待
当程序提交一个请求,服务器对这个请求的处理可能很慢,在传统串行程序中,函数调用时同步的,也就是说程序必须等着服务器返回结果才会进行下一步处理。而Future 模式采用异步调用,充分...
分类:
编程语言 时间:
2016-05-12 14:47:30
阅读次数:
212
Java多线程编程中,常用的多线程设计模式包括:Future模式、Master-Worker模式、Guarded Suspeionsion模式、不变模式和生产者-消费者模式等。这篇文章主要讲述Future模式,关于其他多线程设计模式的地址如下:关于其他多线程设计模式的地址如下:关于Master-Wo...
分类:
编程语言 时间:
2016-01-22 17:12:44
阅读次数:
347
利用JDK提供的Future可以轻易的方法的完成同步非阻塞调用,类似于NIO中的管家,实现的也是同步非阻塞。public class FutureTaskTest { public static void main(String[] args) { ExecutorService es = E...
分类:
其他好文 时间:
2015-09-01 01:21:37
阅读次数:
191
Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。 有了Future就可以进行三段式的编程了,1.启动多线程任务2.处理其他事3.收集多线程任务结果。从而实现了非阻塞的任务调用。在途...
分类:
编程语言 时间:
2015-06-27 17:55:47
阅读次数:
158
javafuture模式所线程实现异步调用(转载)在多线程交互的中2,经常有一个线程需要得到另个一线程的计算结果,我们常用的是Future异步模式来加以解决。Future顾名思意,有点像期货市场的“期权”,是“对未来的一种凭证”,例如当我们买了某个房地产开发商的期房,交钱之后,开发商会给我们一个凭证...
分类:
编程语言 时间:
2015-06-24 16:04:29
阅读次数:
208
详细参见葛一名老师的《Java程序性能优化》Futrue模式:对于多线程,如果线程A要等待线程B的结果,那么线程A没必要等待B,直到B有结果,可以先拿到一个未来的Future,等B有结果是再取真实的结果。 在多线程中经常举的一个例子就是:网络图片的下载,刚开始是通过模糊的图片来代替最后的图片,等下载...
分类:
编程语言 时间:
2015-06-13 23:02:14
阅读次数:
188
Future模式 Future接口是Java线程Future模式的实现,可以来进行异步计算。 Future模式可以这样来描述: 我有一个任务,提交给了Future,Future替我完成这个任务。期间我自己可以去做任何想做的事情。一段时间之后...
分类:
编程语言 时间:
2015-05-18 16:57:37
阅读次数:
229
Future模式的核心在于:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑(根据《Java程序性能优化》)。Future模式有点类似于商品订单。在网上购物时,提交订单后,在收货的这段时间里无需一直在家里等候,可以先干别的事情。类推到程序设计中时, 当提交请求时,期望得到答...
分类:
编程语言 时间:
2015-05-15 17:08:30
阅读次数:
151
假设一个任务执行需要花费一些时间,为了省去不必要的等待时间,可以先获取一个提货单,即future,然后继续处理别的任务,知道货物到达,即任务完成得到结果,此时可以使用提货单提货,即通过future得到返回值。 如下代码所示,加载数据需要10秒中,测试可以先开始任务,随后处理其他的事情,等其他事情都处...
分类:
其他好文 时间:
2015-01-12 00:12:13
阅读次数:
207