`

JAVA利用线程池控制方法执行时间

    博客分类:
  • J2SE
阅读更多
package cn;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

/**
 * @author zhangming
 *
 */
public class TestFurther {

	public static void main(String[] args) {
		ExecutorService executorService = Executors.newFixedThreadPool(1);
		FutureTask<Boolean> futureTask = new FutureTask<>(
				new Callable<Boolean>() {
					@Override
					public Boolean call() throws Exception {
						System.out.println("不告诉你。");
						Thread.sleep(1000 * 3);
						System.out.println("8888888888");
						return false;
					}
				});
		try {
			executorService.submit(futureTask).get(2, TimeUnit.SECONDS);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ExecutionException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (TimeoutException e) {
			System.out.println("超时了吧~~~");
			e.printStackTrace();
			executorService.shutdownNow();
		}
	}
}

 

分享到:
评论

相关推荐

    java线程池概念.txt

    corePoolSize:核心池的大小,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线程去执行任务,当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中; ...

    java线程池讲义+代码

    在线程池中维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。使用线程池不仅能够保证内核的充分利用,还能防止过分调度。WEB服务器完成网页请求这样的任务...

    Java线程池示例代码.zip

    用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就...

    Java线程池技术详解

    而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器...

    Java中多线程的使用线程池.docx

    1.降低消耗,减少了创建和销毁线程的次数,每个线程都可以重复利用,可执行多个任务 2.提高响应速度,任务可以不需要等到线程创建就可以立即执行 3.提高线程的可管理性,根据系统的承受能力,调整线程池中工作线程的...

    java并发编程:juc线程池

    而了解 Java 并发编程以及其中的 JUC(java.util.concurrent)线程池,对于构建高性能、高可伸缩性的应用程序具有重要意义。 多核处理器的出现使得并发执行成为一种重要的优化手段。了解并发编程和线程池的工作原理...

    JAVA线程池的分析和使用

    合理利用线程池能够带来三个好处。第一:降低资源消耗。...创建一个线程池需要输入几个参数:我们可以使用execute提交的任务,但是execute方法没有返回值,所以无法判断任务是否被线程池执行成功。通过以下代码

    深入理解高并发编程-Java线程池核心技术

    java并发编程实战pdf 线程与多线程 1.线程 在操作系统中,线程是比进程更小的能够独立运行的基本单位。同时,它也是 CPU 调度的基本单位。线程本身基本上不拥有系统资源,只是拥有一些在运行时 需要用到的系统资源...

    通用多线程模块(jdk线程池的运用)

    介绍一个通用多线程服务模块。是利用jdk线程池,多线程并行处理多任务,以提高执行效率。

    并发编程库,&amp;&amp;,线程池

    Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建...

    上海某大厂java面试真题与解析

    5、"利用CyclicBarrier和CountDownLatch解决并发协调难题,提升多线程程序的执行效率和可控性。#并发工具类 #Java并发编程" 6、"volatile与synchronized的巧妙运用,确保数据可见性,解决并发编程中的常见痛点。#...

    Java线程池介绍

    根据摩尔定律(Moore’s law),集成电路晶体管的数量差不多每两年会翻一倍。但是晶体管数量指数级的增长不一定会导致 CPU 性能的指数级增长。处理器制造商花了很多年来提高...线程池可以帮助程序员更好地利用多核 C

    java多线程系列(六)线程池原理及其使用.docx

    重复利用已经创建的线程,减少创建线程和销毁线程的开销 提高响应速度,不需要等到线程创建就能立即执行 使用线程池可以进行统一分配,调优和监控 总的来说:降低资源消耗,提高响应速度,提高线程可管理性

    Java并发编程(学习笔记).xmind

    用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量 管理者一组虚拟的许可。acquire获得许可(相当于P操作),release释放许可(相当于V操作) 应用场景 (1)二值信号...

    用于存放java源码和Thinking of Java的资源.rar

    使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,...

    JAVA面试题最全集

    子句就会执行,然后控制就会进入 finally 块(如果有的话)。 finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这...

    Java并发编程实战

    5.4 阻塞方法与中断方法 5.5 同步工具类 5.5.1 闭锁 5.5.2 FutureTask 5.5.3 信号量 5.5.4 栅栏 5.6 构建高效且可伸缩的结果缓存 第二部分 结构化并发应用程序 第6章 任务执行 6.1 在线程中执行任务 6.1.1...

    API搜索引擎(简单易上手适用于各种课程设计,附带几个测试用例) 展示:http://43.143.77.107:8090

    5、利用线程池进行多线程处理提高索引保存速度 6、利用 AOP 切面计算索引保存时间 7、搜索模块利用 HTML+CSS+JS 实现前端搜索功能 8、为索引构建 搜索树 操作方法:1、找到文档中db.sql运行数据库2、下载解压后在...

    第7章-JUC多线程v1.1.pdf

    首先判断任务是否为空, 为空抛出空指针异常, 否则执行下一个判断: 当前线程数量是否小于核心线程池线程数量, 是,则执行addIfUbderCorePollSize(command)方法, 在核心线程池中创建新的线程, 并且执行这个任务 ...

Global site tag (gtag.js) - Google Analytics