摘要:線程池在真正有任務的時候才初始化,隨著任務變化而變化固定任務的線程池總共線程池活動的線程池數量一共得線程池活動的線程池數量,即正在處理任務的線程數量線
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(); } }
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/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 初學者閱讀。 什么是異常 異常是發生在程序運行過程中的,阻斷正常流程中的指令執行的事件。 當一個方法在執行當中發生錯誤時,這個方法就會創建一個特別...
閱讀 3385·2021-11-22 13:53
閱讀 3426·2021-10-11 11:11
閱讀 940·2019-08-30 14:12
閱讀 1231·2019-08-29 17:16
閱讀 651·2019-08-29 16:45
閱讀 3362·2019-08-29 12:56
閱讀 679·2019-08-28 17:55
閱讀 2075·2019-08-26 13:24