FutureTask
FutureTask实现了RunnableFuture接口,则RunnableFuture接口继承了Runnable接口和Future接口
// 继承Callable接口,实现call()方法,泛型参数为要返回的类型
class Task implements Callable<Integer> {
@Override
public Integer call() throws Exception {
//...
}
}
第一种使用方式:Future + ExecutorService
Task task = new Task();
ExecutorService service = Executors.newCachedThreadPool();
Future<Integer> future = service.submit(task1);
service.shutdown();
第二种使用方式: FutureTask + ExecutorService
ExecutorService executor = Executors.newCachedThreadPool();
Task task = new Task();
FutureTask<Integer> futureTask = new FutureTask<Integer>(task);
executor.submit(futureTask);
executor.shutdown();
第三种使用方式:FutureTask + Thread
// 新建FutureTask,需要一个实现了Callable接口的类的实例作为构造函数参数
FutureTask<Integer> futureTask = new FutureTask<Integer>(new Task());
// 新建Thread对象并启动
Thread thread = new Thread(futureTask);
thread.setName("Task thread");
thread.start();
//调用get()方法获取任务结果,如果任务没有执行完成则阻塞等待
futureTask.get();
相关文章
-
利用Java操作Git获取分支的内容[2019-03-10]
-
HBase多线程建立HTable问题[2019-03-28]
最近在写wormhole的HBase plugin,需要分别实现hbase reader和hbase writer。 相关阅读: Hadoop+HBase搭建云存储总结 PDF http://www.linuxidc.com/Linux/2013-05/83844.htm HBase 结点之间时间不一致造成regionserver启动失败 http://www.linuxidc.com/Linux -
solr 启动慢原因分析一则[2019-03-27]
目前线上solr每个replica索引2G左右,每次重新启动需要10分钟,无法忍受。 观察solr的日志,发现打印红色部分前后用去了5分钟,前一条log“registering core”很具迷惑性,以为是注册core时耗费的时间,后来发现这个注册core和初始化SolrCore时的创建searcher不是同一个线程。真正耗费时间的时创建新的searcher的时候。 [2014.08.13 16: -
Solr 4.3.0 配置Data import handler时出错[2019-03-27]
启动solr的时候,居然出现了如下的错误: org.apache.solr.common.SolrException: RequestHandler init failure at org.apache.solr.core.SolrCore.<init>(SolrCore.java:794) at org.apache.solr.core.SolrCore.<init>(S -
4.1----->4.6 Solr从4.1到4.6还是有不少改变的。。。 一、solr.xml 在4.3版本开始Solr维护这两套不同格式的solr.xml,旧的遗留格式和自动发现模式,5.0以后会废除遗留格式而只支持自动发现;简单的说自动发现就是把原有格式里对core的定义放到了core.properties里 在4.5版本开始Solr支持把solr.xml交给ZooKeeper维护
-
定时触发器quartz 问题[2019-03-25]
配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan -
spring 3.0 和jpa 整合 用jboss[2019-03-25]
1、网上说了很多例子,这就不说了,只介绍下我遇见的问题 java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider 这是启动jboss5的时候报错,问题出在jboss5 client中 javax.pe -
solr4.4配置 [2019-03-27]
操作环境:Win8 / Ubuntu64(最下面), Tomcat7, Solr4.4, Jdk7 En More :http://wiki.apache.org/solr/SolrTomcat 1) 在apache官网下载solr4.4的包,解压到本地目录,如E:\apache\solr-4.4.0 2) 找一个目录作为solr的home目录,如D:/WebContainer/apache -
Java并发编程基础知识片段[2019-03-20]
Java 5并发包的加入,给Java的并发程序的开发带来了很多的好处,在此列举一些并发编程中应该掌握的一些基础知识片断,这些片断基本都是由一些问题组成,在片段中没有直接写出答案,由于可用来解决这些片段的方法还是很多的,因此只是提到了解决问题可选方案的关键字,如果有需要进一步了解的话,基本上google一下应该就能查出来了,不过就像之前有朋友说的,如果不是经常用的话,其实就算现在知道了也是会忘记的, -
Storm on Yarn 安装配置[2019-03-02]
1.背景知识 在不修改Storm任何源代码的情况下,让Storm运行在YARN上,最简单的实现方法是将Storm的各个服务组件(包括Nimbus和Supervisor),作为单独的任务运行在YARN上,当前比较有名的“Storm On YARN”实现是由yahoo!开源的,它基本实现了上述描述的功能,下面具体进行说明: (1) YARN-Storm Client 提供了一系列Shell命令供用户控
相关问答
-
您的任务是受计算限制的。 它不执行任何IO或休眠,并且当JVM检查中断标志时(任何抛出Interrup...
-
Java FutureTask <>而不使用ExecutorService?(Java FutureTask<> without using an ExecutorService?)[2023-10-14]
创建和启动数千个线程通常是一个非常糟糕的想法,因为创建线程是昂贵的,并且拥有比处理器更多的线程将不会带... -
执行程序服务正在使用防止JVM终止的非守护程序线程,尝试在完成后关闭该服务... System.out...
-
考虑这个程序: volatile int state; Integer result; void su...
-
Spring 3已经将支持Future对象的提交方法添加到AsyncTaskExecutor 。 在此...
-
根据这篇文章 ,你可以调用执行者清除 。 I couldn't get anything to wor...
-
这就是问题: queue.offer(new FutureResult()); 你在一个FutureR...
-
查看代码,如果连接已关闭,则会发生此NullPointerException 。 我在Jaybird跟...
-
您正在研究一种称为期货和承诺的语言建设。 你可以找到一些例子,例如: https://bitbucke...
-
这似乎正在发生,因为RandomAccessFileOrArray 不是线程安全的 。 您在futur...