国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java復習之線程生命周期與線程池

2019-11-06 07:00:03
字體:
來源:轉載
供稿:網友

這篇博客主要是用來復習java中的線程的生命周期與線程池。

1.線程的生命周期

這里寫圖片描述

2.線程池

線程池是預先創建線程的一種技術。線程池在還沒有任務到來之前,創建 一定數量的線程,放入空閑隊列中,然后對這些資源進行復用。減少頻繁的創建和銷毀對象。 jdk1.5版本以上提供了現成的線程池,Java里面線程池的頂級接口是Executor,是一個執行線程的工具。線程池接口是ExecutorService.

在Executors類里面提供了一些靜態的工廠,生成一些常用的線程池。

java.util.concurrent包:并發編程中很常用的使用工具類 Executor接口: 執行已經提交的Runnable接口

ExecutorService接口: Executor提供了管理終止的方法,以及可為跟蹤一個或者多個異步任務執行狀況而生成的Future的方法

Executor類: 此包中所定義的Executor、ExecutorService等的工廠和實用方法

newSingleThreadExecutor: 創建一個單線程的線程池。這個線程池只有一個線程在工作,也就是相當于單線程串執行所有任務。如果這個唯一的線程因為異常結束,那么會有一個新的線程來替代它。此線程池保證所有任務的執行順序按照任務的提交順序執行

newFixedThreadPool: 創建固定大小的線程池。每次提交一個任務就創建一個線程,直到達到線程池的最大大小。線程池的大小一旦達到最大值就是保持不變,如果某個線程因為執行異常而結束,那么線程池會補充一個新的線程。

newCachedThreadPool: 創建一個可緩存的線程池。如果線程池的大小超過了處理任務所需要的線程,那么就會回收部分空閑(60秒不執行的任務)的線程,當任務數增加時,此線程池又可以智能添加新線程來處理任務。此線程池不會對線程池大小做限制,線程池大小完全依賴于操作系統(或者說JVM)可以創建的最大的線程的大小

new ScheduledThreadPool:創建一個大小無限的線程池。此線程池 支持定時以及周期性執行任務的需求。

** * 線程池 */public class ThreadPoolDemo { public static void main(String args[]) { //創建一個單線程的線程池 // ExecutorService es= Executors.newSingleThreadExecutor(); //創建一個固定大小的線程池 //ExecutorService es=Executors.newFixedThreadPool(2); //創建一個可以緩存的線程池,會進行回收空閑線程 // ExecutorService es=Executors.newCachedThreadPool(); //創建一個大小無限制的線程池,參數為最少的線程數,不會回收 ExecutorService es=Executors.newScheduledThreadPool(2); //執行線程 es.execute(new MyThread()); es.execute(new MyThread()); }}class MyThread implements Runnable{ @Override public void run() { for(int i=0;i<10;i++) { try { Thread.sleep(1000); }catch (InterruptedException ex) { ex.PRintStackTrace(); } System.out.println("MyThread-"+i); } }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂林市| 湾仔区| 塘沽区| 雅江县| 虞城县| 紫阳县| 武川县| 溧阳市| 新龙县| 顺昌县| 布拖县| 留坝县| 明星| 滦平县| 新民市| 罗城| 佛坪县| 资兴市| 荆门市| 林州市| 鄱阳县| 林芝县| 许昌县| 东光县| 孝感市| 罗定市| 宜昌市| 临海市| 永胜县| 奉节县| 荥阳市| 红河县| 宜宾县| 湘潭市| 绵阳市| 沁阳市| 嘉黎县| 嘉义县| 吉安市| 香格里拉县| 彩票|