newCachedThreadPool线程池
public static ExecutorService newFixedThreadPool(int nThreads)创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。在任意点,在大多数 nThreads 线程会处于处理任务的活动状态。如果在所有线程处于活动状态时提交附加任务,则在有可用线程之前,附加任务将在队列中等待。如果在关闭前的执行期间由于失败而导致任何线程终止,那么一个新线程将代替它执行后续的任务(如果需要)。在某个线程被显式地关闭之前,池中的线程将一直存在。
新的线程加入后,如果正在运行的线程达到了上限,则会阻塞,直到有了空闲的线程来运行。
- import java.util.Random;
 - import java.util.concurrent.ExecutorService;
 - import java.util.concurrent.Executors;
 - import java.util.concurrent.TimeUnit;
 - /**
 - * 线程池newFixedThreadPool的使用。
 - *
 - */
 - public class ExecutorTest {
 - public static void main(String args[]) {
 - Random random = new Random();
 - // 建立一个容量为5的固定尺寸的线程池
 - ExecutorService executor = Executors.newFixedThreadPool(5);
 - // 判断可是线程池可以结束
 - int waitTime = 500;
 - for (int i = 0; i < 10; i++) {
 - String name = "线程 " + i;
 - int time = random.nextInt(1000);
 - waitTime += time;
 - Runnable runner = new ExecutorThread(name, time);
 - System.out.println("增加: " + name + " / " + time);
 - executor.execute(runner);
 - }
 - try {
 - Thread.sleep(waitTime);
 - executor.shutdown();
 - executor.awaitTermination(waitTime, TimeUnit.MILLISECONDS);
 - } catch (InterruptedException ignored) {
 - }
 - }
 - }
 - class ExecutorThread implements Runnable {
 - private final String name;
 - private final int delay;
 - public ExecutorThread(String name, int delay) {
 - this.name = name;
 - this.delay = delay;
 - }
 - public void run() {
 - System.out.println("启动: " + name);
 - try {
 - Thread.sleep(delay);
 - } catch (InterruptedException ignored) {
 - }
 - System.out.println("完成: " + name);
 - }
 - }
 
newCachedThreadPool线程池的更多相关文章
- 多线程——newCachedThreadPool线程池
		
newCachedThreadPool线程池: 理解: 1).newCachedThreadPool可以创建一个无限大小的线程池(实际上是一个可缓存线程池). 可以通过Executors的静 ...
 - JAVA基础知识之多线程——线程池
		
线程池概念 操作系统或者JVM创建一个线程以及销毁一个线程都需要消耗CPU资源,如果创建或者销毁线程的消耗源远远小于执行一个线程的消耗,则可以忽略不计,但是基本相等或者大于执行线程的消耗,而且需要创建 ...
 - 线程池 队列 synchronized
		
线程池 BlockingQueue synchronized volatile 本章从线程池到阻塞队列BlockingQueue.从BlockingQueue到synchronized 和 volat ...
 - 【java线程池】
		
一.概述 1.线程池的优点 ①降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗: ②提高系统响应速度,当有任务到达时,无需等待新线程的创建便能立即执行: ③方便线程并发数的管控,线 ...
 - 从线程池到synchronized关键字详解
		
线程池 BlockingQueue synchronized volatile 前段时间看了一篇关于"一名3年工作经验的程序员应该具备的技能"文章,倍受打击.很多熟悉而又陌生的知识 ...
 - Java 线程池的原理及实现
		
1.线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力. 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线 ...
 - java线程池(一)
		
自JDK5之后,Java推出了一个并发包,java.util.concurrent,在Java开发中,我们接触到了好多池的技术,String类的对象池.Integer的共享池.连接数据库的连接池.St ...
 - 仿netty线程池简化版本
		
package com.hcxy.car.threadpools; import java.io.IOException; import java.nio.channels.Selector; imp ...
 - 面试必备:Java线程池解析
		
前言 掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有关于线程池的问题.我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈谈我对线程池的理解.如果有哪里理解不正确,非常 ...
 
随机推荐
- Android 学习第3课,小例子
			
package temperature.convert; import java.util.Scanner; public class Converter { public static void m ...
 - Linux线程-互斥锁pthread_mutex_t
			
在线程实际运行过程中,我们经常需要多个线程保持同步.这时可以用互斥锁来完成任务:互斥锁的使用过程中,主要有pthread_mutex_init,pthread_mutex_destory,pthrea ...
 - 使用Object.observe 实现数据绑定
			
Object.observe API概述 最近,JavaScript的MVC框架在Web开发届非常盛行.在实现MVC框架的时候,一个非常重要的技术就是数据绑定技术.如果要实现模型与视图的分离,就必须要 ...
 - Python::OS 模块 -- 进程管理
			
os模块的简介参看 Python::OS 模块 -- 简介 os模块的文件相关操作参看 Python::OS 模块 -- 文件和目录操作 os模块的进程参数 Python::OS 模块 -- 进程参数 ...
 - java.lang.ClassNotFoundException: Didn't find class "*****(转载)
			
很多人出现了java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{*****Activity}: java. ...
 - 在线聊天室的实现(2)--基于Netty 4.x的Echo服务器实现
			
前言: 就如前文所讲述的, 聊天室往往是最基本的网络编程的学习案例. 本文以WebSocket为底层协议, 实现一个简单的基于web客户端的Echo服务. 服务器采用Netty 4.x来实现, 源于其 ...
 - excel导入导出
			
using System; using System.Collections.Generic; using System.Linq; using System.Text; using FS.Exten ...
 - SEL方法选择器
			
在Objective-C中,选择器(selector)有两个意思. 一是指在代码中的方法的名称.二是指在编译是用于替换方法名称的唯一的标识符.编译后的选择器的为SEL类型.所有名称相同的方法拥有同一个 ...
 - Codeforces Round #156 (Div. 2)
			
A. Greg's Workout 模3求和,算最大值. B. Code Parsing 最后左半部分为x,右半部分为y,那么从中间不断去掉xy,直到其中一种全部消去. C. Almost Arith ...
 - QSqlTableModel 使用方法(转)
			
Qt QSqlTableModel 使用心得 连接数据库 执行sql查询,条件显示,排序 获取记录数,列数以及记录内容,字段内容 新增,修改,删除,恢复 其它 1---------------连接数据 ...