摘要:以下拋異常,因為線程池都沒了線程池之后提供的線程池的工廠類用來生成線程池類中的靜態方法創建一個可重用固定線程數的線程池參數創建線程池中包含的線程數量返回值接口返回的是接口的實現類對象我們可以使用接口接收面向接口編程線程池接口用來從線程池中獲
以下拋異常,因為線程池都沒了
package com.itheima.demo02.ThreadPool;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/*
線程池:JDK1.5之后提供的 java.util.concurrent.Executors:線程池的工廠類,用來生成線程池 Executors類中的靜態方法: static ExecutorService newFixedThreadPool(int nThreads) 創建一個可重用固定線程數的線程池 參數: int nThreads:創建線程池中包含的線程數量 返回值: ExecutorService接口,返回的是ExecutorService接口的實現類對象,我們可以使用ExecutorService接口接收(面向接口編程) java.util.concurrent.ExecutorService:線程池接口 用來從線程池中獲取線程,調用start方法,執行線程任務 submit(Runnable task) 提交一個 Runnable 任務用于執行 關閉/銷毀線程池的方法 void shutdown() 線程池的使用步驟: 1.使用線程池的工廠類Executors里邊提供的靜態方法newFixedThreadPool生產一個指定線程數量的線程池 2.創建一個類,實現Runnable接口,重寫run方法,設置線程任務 3.調用ExecutorService中的方法submit,傳遞線程任務(實現類),開啟線程,執行run方法 4.調用ExecutorService中的方法shutdown銷毀線程池(不建議執行)
*/
public class Demo01ThreadPool {
public static void main(String[] args) { //1.使用線程池的工廠類Executors里邊提供的靜態方法newFixedThreadPool生產一個指定線程數量的線程池 ExecutorService es = Executors.newFixedThreadPool(2); //3.調用ExecutorService中的方法submit,傳遞線程任務(實現類),開啟線程,執行run方法 es.submit(new RunnableImpl());//pool-1-thread-1創建了一個新的線程執行 //線程池會一直開啟,使用完了線程,會自動把線程歸還給線程池,線程可以繼續使用 es.submit(new RunnableImpl());//pool-1-thread-1創建了一個新的線程執行 es.submit(new RunnableImpl());//pool-1-thread-2創建了一個新的線程執行 //4.調用ExecutorService中的方法shutdown銷毀線程池(不建議執行) es.shutdown(); es.submit(new RunnableImpl());//拋異常,線程池都沒有了,就不能獲取線程了 }
}
package com.itheima.demo02.ThreadPool;
/*
2.創建一個類,實現Runnable接口,重寫run方法,設置線程任務
*/
public class RunnableImpl implements Runnable{
@Override public void run() { System.out.println(Thread.currentThread().getName()+"創建了一個新的線程執行"); }
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/75948.html
摘要:本文主要內容為簡單總結中線程池的相關信息。方法簇方法簇用于創建固定線程數的線程池。三種常見線程池的對比上文總結了工具類創建常見線程池的方法,現對三種線程池區別進行比較。 概述 線程可認為是操作系統可調度的最小的程序執行序列,一般作為進程的組成部分,同一進程中多個線程可共享該進程的資源(如內存等)。在單核處理器架構下,操作系統一般使用分時的方式實現多線程;在多核處理器架構下,多個線程能夠...
摘要:用于限定中線程數的最大值。該線程池中的任務隊列維護著等待執行的對象。線程池和消息隊列筆者在實際工程應用中,使用過多線程和消息隊列處理過異步任務。以上是筆者在學習實踐之后對于多線程和消息隊列的粗淺認識,初學者切莫混淆兩者的作用。 多線程編程很難,難點在于多線程代碼的執行不是按照我們直覺上的執行順序。所以多線程編程必須要建立起一個宏觀的認識。 線程池是多線程編程中的一個重要概念。為了能夠更...
閱讀 1999·2021-09-07 10:24
閱讀 2098·2019-08-30 15:55
閱讀 2049·2019-08-30 15:43
閱讀 676·2019-08-29 15:25
閱讀 1067·2019-08-29 12:19
閱讀 1949·2019-08-23 18:32
閱讀 1525·2019-08-23 17:59
閱讀 955·2019-08-23 12:22