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