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

 

最新文章

  1. 参加SFDC的感触
  2. H5+ 移动app学习之二 Native.js
  3. core dump 是什么意思?
  4. placeholder 使用
  5. struts2中如何使用主题theme
  6. 【JavaScript】 knockout.js 日期格式化借助【momentjs】
  7. GoogleApis 屏蔽
  8. WPF学习03:Element Binding
  9. makefile复习时发现的编写makefile规则注意事项
  10. 数据挖掘10大算法(1)——PageRank
  11. 量化Hacker News 中50天的数据 Quantifying Hacker News with 50 days of data
  12. 11个显著提升 ASP.NET 应用程序性能的技巧——第1部分
  13. mybatis系列笔记(3)---SqlMapConfig.xml解析
  14. 火车站点城市查询(appserv 服务器练习)
  15. c++中find函数的用法
  16. 基于JDK1.8的HashMap分析
  17. python-scrapy的编码问题
  18. 【BZOJ2006】超级钢琴(主席树,优先队列)
  19. tomcat中的线程问题2
  20. Java高级开发工程师面试笔记

热门文章

  1. MapReduce小文件优化与分区
  2. JS中将字符串中每个单词的首字母大写化
  3. CentOS6.8 yum 安装 mysql5.7.12 完美步骤
  4. TensorFlow学习笔记(四)图像识别与卷积神经网络
  5. mysql 系统变量和session变量
  6. 草稿:SCADA全局底层框架架构
  7. 下载.iso类型的软件如何安装
  8. [笔记] Ubuntu 18.04源码安装caffe流程
  9. ruby中的私有方法和保护方法
  10. bootstrap常用知识点总结