摘要:线程池在真正有任务的时候才初始化,随着任务变化而变化固定任务的线程池总共线程池活动的线程池数量一共得线程池活动的线程池数量,即正在处理任务的线程数量线
package com.ex;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class Server {
private ThreadPoolExecutor executor; public ThreadPoolExecutor getExecutor(){ return this.executor; } public Server(){
// executor=(ThreadPoolExecutor) Executors.newCachedThreadPool();// cache线程池在真正有任务的时候才初始化,随着任务变化而变化
executor=(ThreadPoolExecutor) Executors.newFixedThreadPool(10);//固定任务的线程池 System.out.println("总共线程池------------------------"+executor.getPoolSize()); System.out.println("活动的线程池数量---------------------"+executor.getActiveCount()); } public void excuteTask(Task task){ executor.execute(task); System.out.println("一共得线程池"+executor.getPoolSize()); System.out.println("活动的线程池数量,即正在处理任务的线程数量"+executor.getActiveCount()); } public static void main(String[] args) { Server server=new Server(); for(int i=0;i<100;i++){ Task task=new Task("线程id"+i); server.excuteTask(task); } /**
主线程不断询问线程组是否执行完毕
*/
while(true){
if(server.getExecutor().getCompletedTaskCount()==100){
System.out.println("总共线程池------------------------"+server.getExecutor().getPoolSize()); System.out.println("活动的线程池数量---------------------"+server.getExecutor().getActiveCount()); server.getExecutor().shutdown(); break;
}
} }
}
package com.ex;
import java.util.Date;
public class Task implements Runnable{
private String name; private Date date; public Task(String name){ this.date=new Date(); this.name=name; } @Override public void run() { try { System.out.println(this.name+"----开始执行任务"); Thread.sleep((long) (Math.random()*1000)); System.out.println(this.name+"----结束执行任务"); } catch (InterruptedException e) { e.printStackTrace(); } }
}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64727.html
摘要:模板解释器和字节码解释器差不多,不一样的地方在于直接把对应的指令集转成本地代码编译器可以针对热点代码优化,执行开销较大,但是能够针对性的优化,效率最高垃圾收集器负责回收不再使用的对象,释放和整理内存简称。 (原发于知乎, 定期同步至segmentfault, 原文地址:知乎-JVM入门系列-JVM总览)Java宣称Write Once Run Everywhere,这意味着在一个平台上...
摘要:包含了支持服务开发的类,并为提供基础,如语言基础操作操作网络通信以及多线程等技术。在运行文件时,的解释器对这些字节码进行解释执行,执行过程中需要加入的类在连接阶段被载入到运行环境中。支持多个线程同时执行,并提供多线程之间的同步机制。 1.什么是Java语言 简单地说,Java 是由 Sun Microsystems 公司于 1995 年推出的一门面向对象程序设计语言。2009 年 Or...
摘要:开始的开始最近在做上的自动化测试,从最初的第三方自动化测试框架到后来的,再到最终完成答疑君客户端一些核心流程的自动化测试,期间也是经历了各种大大小小的坑。 开始的开始 最近在做Android上的自动化测试,从最初的第三方自动化测试框架appium到后来的Android Support Testing Library,再到最终完成答疑君Android客户端一些核心流程的自动化测试,期间也...
摘要:所有能够处理该异常的方法,都来自一个叫做调用堆栈的方法列表。如果运行环境在调用堆栈中自始至终未能找到捕获这个异常的代码块,那么整个程序将终止运行。 本文尝试以尽可能详细的方式介绍 Java 当中的异常概念和处理机制。本文适合 Java 初学者阅读。 什么是异常 异常是发生在程序运行过程中的,阻断正常流程中的指令执行的事件。 当一个方法在执行当中发生错误时,这个方法就会创建一个特别...
阅读 3343·2021-11-22 13:53
阅读 3343·2021-10-11 11:11
阅读 916·2019-08-30 14:12
阅读 1196·2019-08-29 17:16
阅读 621·2019-08-29 16:45
阅读 3323·2019-08-29 12:56
阅读 650·2019-08-28 17:55
阅读 2048·2019-08-26 13:24