最新文章列表

Java并发编程 - Executor,Executors,ExecutorService, CompletionServie,Future,Callable

一、Exectuor框架简介        Java从1.5版本开始,为简化多线程并发编程,引入全新的并发编程包:java.util.concurrent及其并发编程框架(Executor框架)。 Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,Completio ...
Josh_Persistence 评论(0) 有18752人浏览 2014-10-18 18:45

java 线程池使用 Runnable&Callable&Future

1. 创建线程池 ExecutorService executorService = Executors.newCachedThreadPool();   2. 执行一次线程,调用Runnable接口实现 Future<?> future = executorService.submit(new DefaultRunnable()); System.out.println( ...
antlove 评论(0) 有1319人浏览 2014-09-22 20:54

使用CompletionService批处理任务(线程池阻塞线程)

如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果。为此你可以保存与每个任务相关联的Future,然后不断地调用timeout为零的get,来检验Future是否完成。这样做固然可以,但却相当乏味。幸运的是,还有一个更好的方法:完成服务(Completion service)。 CompletionService整合了Executor和BlockingQueue的功能。你 ...
langgufu 评论(0) 有12255人浏览 2014-08-11 17:36

Java主线程如何等待子线程执行结束(转)

工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了. 一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线程的流程,  往往需要让主线程指定后, 等待子线程的完成. 这里有几种方式. 站在 主线程的角度, 我们可以分为主动式和被动式. 主动式指主线主动去检测某个标志位, 判断子线程是否已经完成. ...
langgufu 评论(0) 有5408人浏览 2014-07-29 11:32

FutureTask实现缓存Demo

package com.samples.thread; import java.util.Date; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; import j ...
liushulin 评论(0) 有1067人浏览 2014-05-15 15:31

Runnable, Callable和Future

原文链接:http://www.2cto.com/kf/201204/128725.html Callable接口定义了一个call方法可以作为线程的执行体,但call方法比run方法更强大:     A、call方法可以有返回值     B、call方法可以申明抛出异常     Callable接口是JDK5后新增的接口,而且不是Runnable的子接口,所以Callable对象不能直 ...
darrenzhu 评论(0) 有1440人浏览 2014-04-12 16:48

Callable、Future和CompletionService

在整理执行器Executor之前,需要提到这样几个类/接口,这些类在使用执行器实现并发开发的时候是比较有用的,他们就是Callable、Future和CompletionService。 0. Callable 在最开始整理Java多线程并发的文章时就提到过了,Runnable是在JDK1.0中就有的。我们再来回头看下java.lang.Runnable:   [java] vi ...
milagro 评论(0) 有546人浏览 2014-03-26 14:43

java 多线程学习-----初入线程池

   使用线程池初衷    最近项目做代码优化,有一业务功能,大致描述为有20几台分机往总机发送文件,总机在收到文件之后,会往分机反馈数据处理情况。     这时候想到使用调度来查询总机收到的消息,处理之后分别发送至各分机,为避免排队处理,决定使用多线程,并使用线程池来管理。     创建线程池     查找资料之后,采用JDK1.5的java.util.concurrent包创建线程池,本例使用 ...
xinbusiqq 评论(0) 有688人浏览 2013-11-18 22:39

Callable与Future的应用

/** * CallableAndFuture.java * cn.com.songjy.test.socket.thread * Function: TODO * * version date author * ────────────────────────────────── * 1.0 2013-8-17 songjy * ...
宋建勇 评论(0) 有1073人浏览 2013-08-19 20:03

Java并发编程-Executor框架+实例

Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable ...
MouseLearnJava 评论(0) 有3837人浏览 2013-07-18 21:23

高效并发缓存

package concurrent; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; impor ...
buzhucele 评论(0) 有2126人浏览 2012-11-02 16:47

Future

在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现。 Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。 Future模式可以这样来描述:我有一个任务,提交给了Future,Future替我完成这个任 ...
T240178168 评论(0) 有2126人浏览 2012-10-27 23:10

Akka2使用探索7——“云计算”示例(Actor、Future、Remoting、Router、Deploy、异步、并发使用Demo)

假设有一个很耗时的运算,单台机器已经没法满足需求,这时你可以想到由多台计算机协作完成。具体怎么做呢。 举个很简单的例子,假设这个耗时的运算是从1加到100000,你现在有两台服务器,可以让这两台服务器分别完成从1加到50000,和从50001加到100000,然后本机完成这两个结果之和。   两台服务器分别启动两个akka Server,同时还有一个CalcActor。这个计算actor ...
xiefeifeihu 评论(1) 有1852人浏览 2012-08-22 15:39

Akka2使用探索6(Futures)——实现并发和异步

  Future用来获取某个并发操作的结果,这个结果可以同步(阻塞)或异步(非阻塞)的方式访问。   执行上下文 Future 需要一个ExecutionContext, 它与jav ...
xiefeifeihu 评论(0) 有4128人浏览 2012-08-14 18:01

可以返回执行结果的线程

java中继承自Thread或者实现Runnable接口的类都是可用于执行多线程任务的类 要想得到任务执行的结果,可以向类的构造方法中传入类类型参数,例如   class AddThread implements Runnable{ private int a;//操作数a private int b;//操作数b public Object result;//结果 ...
sdu_wizard 评论(0) 有1489人浏览 2012-07-02 20:31

java异步计算Future的使用

从jdk1.5开始我们可以利用Future来跟踪异步计算的结果。在此之前主线程要想获得工作线程(异步计算线程)的结果是比较麻烦的事情,需要我们进行特殊的程序结构设计,比较繁琐而且容易出错。有了Future我们就可以设计出比较优雅的异步计算程序结构模型:根据分而治之的思想,我们可以把异步计算的线程按照职责分为3类: 1. 异步计算的发起线程(控制线程):负责异步计算任务的分解和发起,把分解好的任务交 ...
jiangwenfeng762 评论(2) 有25880人浏览 2011-12-25 13:07

Spring异步任务@asynch

AOP+JCU的ThreadPool和Future实现了异步任务,很简单,直接看spring实现的源代码吧: public Object invoke(final MethodInvocation invocation) throws Throwable { Future result = this.asyncExecutor.submit(new Callable<Object ...
xiaoZ5919 评论(0) 有1630人浏览 2011-11-10 17:04

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics