关于java 线程池 ThreadPoolExceutor 之 TestDemo
public class App {
public static void main(String[] args) throws InterruptedException {
System.out.println("这是测试项目");
// ExecutorService executorService=Executors.newCachedThreadPool();
// Executors.newSingleThreadExecutor();
// Executors.newFixedThreadPool(100);
ExecutorService executorService = Executors.newFixedThreadPool(5);
// ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 200,
// TimeUnit.MICROSECONDS,
// new ArrayBlockingQueue<Runnable>(5));
while (true) {
for (int i = 0; i < 10; i++) {
Mytask mytask = new Mytask(i);
//executor.execute(mytask);
executorService.execute(mytask);
// System.out.println("线程池线程数目"+executor.getPoolSize()+"
// 等待的任务数目"+executor.getQueue().size()
// +",已执行完别的任务数目:"+executor.getCompletedTaskCount());
System.out.println("当前线程活动数目:" + ((ThreadPoolExecutor) executorService).getActiveCount() + ",等待的任务数目:"
+ ((ThreadPoolExecutor) executorService).getTaskCount() + ",已执行完别的任务数目"
+ ((ThreadPoolExecutor) executorService).getCompletedTaskCount());
}
//executorService.shutdown();
//executor.shutdown();
System.out.println("主线程睡眠10秒 再执行~~~~~~~~~~~~~~~");
Thread.sleep(10000);
}
}
}
-----------------------------------------------------------
public class Mytask implements Runnable {
private int taskNum;
public Mytask(int num) {
this.taskNum = num;
}
@Override
public void run() {
System.out.println("正在执行task" + this.taskNum);
try {
Thread.currentThread();
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("task" + taskNum + "执行完毕");
}
}
--------------------注解
得到 ExecutorService 当前活动的线程数
https://blog.csdn.net/yingzishizhe/article/details/8769907
Java并发编程:线程池的使用(重点需要看)
http://www.cnblogs.com/dolphin0520/p/3932921.html
Java通过Executors提供四种线程池
https://www.cnblogs.com/webglcn/p/5265901.html
Executors创建的4种线程池的使用
https://www.cnblogs.com/ljp-sun/p/6580147.html
关于java 线程池 ThreadPoolExceutor 之 TestDemo的更多相关文章
- Java 线程池框架核心代码分析--转
原文地址:http://www.codeceo.com/article/java-thread-pool-kernal.html 前言 多线程编程中,为每个任务分配一个线程是不现实的,线程创建的开销和 ...
- Java线程池使用说明
Java线程池使用说明 转自:http://blog.csdn.net/sd0902/article/details/8395677 一简介 线程的使用在java中占有极其重要的地位,在jdk1.4极 ...
- (转载)JAVA线程池管理
平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发攻城师却在这个上面吃了不少苦头.怎么做一套简便的线程开发模式 ...
- Java线程池的那些事
熟悉java多线程的朋友一定十分了解java的线程池,jdk中的核心实现类为java.util.concurrent.ThreadPoolExecutor.大家可能了解到它的原理,甚至看过它的源码:但 ...
- 四种Java线程池用法解析
本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 执行一个异步任务你还只是如下 ...
- Java线程池的几种实现 及 常见问题讲解
工作中,经常会涉及到线程.比如有些任务,经常会交与线程去异步执行.抑或服务端程序为每个请求单独建立一个线程处理任务.线程之外的,比如我们用的数据库连接.这些创建销毁或者打开关闭的操作,非常影响系统性能 ...
- Java线程池应用
Executors工具类用于创建Java线程池和定时器. newFixedThreadPool:创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程.在任意点,在大多数 nThread ...
- Java线程池的原理及几类线程池的介绍
刚刚研究了一下线程池,如果有不足之处,请大家不吝赐教,大家共同学习.共同交流. 在什么情况下使用线程池? 单个任务处理的时间比较短 将需处理的任务的数量大 使用线程池的好处: 减少在创建和销毁线程上所 ...
- Java线程池与java.util.concurrent
Java(Android)线程池 介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行 ...
随机推荐
- CF#301 B:School Marks(贪心)
B:School Marks 有n个测试,已经完成了k个,每个测试得分为a[i],接下来的分数不知道,让我们求出任何一个满足题意的即可,满足题意就是n个测试的得分总和<=x, 中位数>=y ...
- shell awk实战
一.文本处理 1.按行提取关键字频次(如取第5列) awk 'BEGIN{FS="|"} {a[$5]+=1;} END {for(i in a) print i ":& ...
- MySql库、表权限管理
#授权表user #该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段db #该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段tables_priv #该表放行 ...
- 1. testNG+Maven 环境搭建
一:使用的工具 : TestNG 6.9.10 Maven 3.5 IDEA 二:创建maven项目,在pom.xml添加依赖 <?xml version="1.0" enc ...
- Zabbix3的离线安装
背景与环境 由于实际情况需求,zabbix在局域网中进行部署,遇到许多问题,在此记录. 操作系统:CentOS 6.9(使用的最小安装) zabbix版本:zabbix-3.0.13(LTS) php ...
- spring MVC学习(一)---前端控制器
1.spring MVC中的前段控制器就是DsipatcherServlet,它在spring MVC框架中的结构图如下: 2.DispatcherServlet其实就是一个Servlet,它继承了H ...
- 17.出现fatal signal(SIGSEGV),code 1,fault addr 0x0 in tid 29931的问题
原因是: 在onCreate方法里面调一些东西的时候,有时候系统相关的东西还没有初始化完,你的代码就已经执行了,会出现一些问题 解决方法: 增加延时1s /一.第一步初始化,此处用的是demo的ap ...
- Python数据库连接池实例——PooledDB
不用连接池的MySQL连接方法 import MySQLdb conn= MySQLdb.connect(host='localhost',user='root',passwd='pwd',db='m ...
- centos7 vim显示行号
CentOS7下可能有n个账户,让vim显示行号有两种方法:仅让当前用户显示行号和让所有用户显示行号 一.仅让当前用户显示行号 输入命令:vim ~/.vimrc 写入:set nu 保存:wq ...
- hdu6121 Build a tree
地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6121 题面: Build a tree Time Limit: 2000/1000 MS (J ...