摘要:線程池在真正有任務的時候才初始化,隨著任務變化而變化固定任務的線程池總共線程池活動的線程池數(shù)量一共得線程池活動的線程池數(shù)量,即正在處理任務的線程數(shù)量線
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("活動的線程池數(shù)量---------------------"+executor.getActiveCount()); } public void excuteTask(Task task){ executor.execute(task); System.out.println("一共得線程池"+executor.getPoolSize()); System.out.println("活動的線程池數(shù)量,即正在處理任務的線程數(shù)量"+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); } /**
主線程不斷詢問線程組是否執(zhí)行完畢
*/
while(true){
if(server.getExecutor().getCompletedTaskCount()==100){
System.out.println("總共線程池------------------------"+server.getExecutor().getPoolSize()); System.out.println("活動的線程池數(shù)量---------------------"+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+"----開始執(zhí)行任務"); Thread.sleep((long) (Math.random()*1000)); System.out.println(this.name+"----結(jié)束執(zhí)行任務"); } catch (InterruptedException e) { e.printStackTrace(); } }
}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64727.html
摘要:模板解釋器和字節(jié)碼解釋器差不多,不一樣的地方在于直接把對應的指令集轉(zhuǎn)成本地代碼編譯器可以針對熱點代碼優(yōu)化,執(zhí)行開銷較大,但是能夠針對性的優(yōu)化,效率最高垃圾收集器負責回收不再使用的對象,釋放和整理內(nèi)存簡稱。 (原發(fā)于知乎, 定期同步至segmentfault, 原文地址:知乎-JVM入門系列-JVM總覽)Java宣稱Write Once Run Everywhere,這意味著在一個平臺上...
摘要:包含了支持服務開發(fā)的類,并為提供基礎,如語言基礎操作操作網(wǎng)絡通信以及多線程等技術(shù)。在運行文件時,的解釋器對這些字節(jié)碼進行解釋執(zhí)行,執(zhí)行過程中需要加入的類在連接階段被載入到運行環(huán)境中。支持多個線程同時執(zhí)行,并提供多線程之間的同步機制。 1.什么是Java語言 簡單地說,Java 是由 Sun Microsystems 公司于 1995 年推出的一門面向?qū)ο蟪绦蛟O計語言。2009 年 Or...
摘要:開始的開始最近在做上的自動化測試,從最初的第三方自動化測試框架到后來的,再到最終完成答疑君客戶端一些核心流程的自動化測試,期間也是經(jīng)歷了各種大大小小的坑。 開始的開始 最近在做Android上的自動化測試,從最初的第三方自動化測試框架appium到后來的Android Support Testing Library,再到最終完成答疑君Android客戶端一些核心流程的自動化測試,期間也...
摘要:所有能夠處理該異常的方法,都來自一個叫做調(diào)用堆棧的方法列表。如果運行環(huán)境在調(diào)用堆棧中自始至終未能找到捕獲這個異常的代碼塊,那么整個程序?qū)⒔K止運行。 本文嘗試以盡可能詳細的方式介紹 Java 當中的異常概念和處理機制。本文適合 Java 初學者閱讀。 什么是異常 異常是發(fā)生在程序運行過程中的,阻斷正常流程中的指令執(zhí)行的事件。 當一個方法在執(zhí)行當中發(fā)生錯誤時,這個方法就會創(chuàng)建一個特別...
閱讀 3423·2021-11-22 13:53
閱讀 3464·2021-10-11 11:11
閱讀 964·2019-08-30 14:12
閱讀 1256·2019-08-29 17:16
閱讀 679·2019-08-29 16:45
閱讀 3394·2019-08-29 12:56
閱讀 704·2019-08-28 17:55
閱讀 2101·2019-08-26 13:24