ThreadPoolExecutor中的引數詳解
1. ThreadPoolExecutor資料成員
1 |
Private
final AtomicInteger
ctl = new AtomicInteger(ctlOf(RUNNING, 0 ));
|
ctl主要用於儲存執行緒池的工作狀態以及池中正在執行的執行緒數。顯然要在一個整型變數儲存兩個資料,只能將其一分為二。其中高3bit用於儲存執行緒池的狀態,低位的29bit用於儲存正在執行的執行緒數。
執行緒池具有以下五種狀態,當建立一個執行緒池時初始化狀態為RUNNING
RUNNING |
允許提交併處理任務 |
SHUTDOWN |
不允許提交新的任務,但是會處理完已提交的任務 |
STOP |
不允許提交新的任務,也不會處理阻塞佇列中未執行的任務,並設定正在執行的執行緒的中斷標誌位 |
TIDYING |
所有任務執行完畢,池中工作的執行緒數為0,等待執行terminated()勾子方法 |
TERMINATED |
terminated()勾子方法執行完畢 |
注意,這裡說的是執行緒池的狀態而不是池中執行緒的狀態。
呼叫執行緒池的shutdown方法,將執行緒池由RUNNING(執行狀態)轉換為SHUTDOWN狀態。
呼叫執行緒池的shutdownNow方法,將執行緒池由RUNNING或SHUTDOWN狀態轉換為STOP狀態。
SHUTDOWN狀態和STOP狀態先會轉變為TIDYING狀態,最終都會變為TERMINATED
1 2 3 |
Private
static int runStateOf( int c)
Private
static int workerCountOf( int c)
Private
static int ctlOf( int rs, int wc)
|
ThreadPoolExecutor同時提供上述三個方法用於池中的執行緒檢視執行緒池的狀態和計算正在執行的執行緒數。
1 2 3 4 5 6 7 |
Private
int largestPoolSize;
Private
final BlockingQueue<Runnable>workQueue;
Private
volatile long keepAliveTime;
private volatile int corePoolSize;
private volatile int maximumPoolSize;
private volatile ThreadFactory
threadFactory;
private volatile RejectedExecutionHandler
handler;
|
上述資料成員對執行緒池的效能也有很大的影響,我會將它們放到構造中講解。
1
相關推薦angular6 中angular.json中引數詳解其實我覺得配置項這個東西應該是很簡單的,畢竟是配置項,引數拿過來抄一下就行了.又不是寫什麼樣式寫什麼邏輯的 但是吧,居然還真的在百度上找不到什麼能看的東西,尤其是我現在升級到angular6,網就真的找不到什麼能看的東西了,於是乎,這個看著感覺隨便抄抄的內容讓我 ThreadPoolExecutor中的引數詳解1. ThreadPoolExecutor資料成員 1 Private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING,0)); 學習筆記--JDK中的URLConnection引數詳解JDK中的URLConnection引數詳解 針對JDK中的URLConnection連線Servlet的問題,網上有雖然有所涉及,但是隻是說明了某一個或幾個問題,是以FAQ的方式來解決的,而且比較零散,現在對這個類的使用就本人在專案中的使用經驗做如下總結: 1:> linux中mount命令引數詳解 nfs 引數分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!   執行緒池ThreadPoolExecutor配置、引數詳解及例子對於執行緒池,我僅限於簡單的使用,對其原理和引數並不是很理解。以前只是在網上找個執行緒池的例子,然後模仿寫一下而已,最近專案中又再次用的執行緒池,做了一些研究,現記錄下,以備以後使用。 我以前利用執行緒池只會這樣用: ajax中error函式引數詳解xhr.status和error函式中的status是不一樣的,error函式中的status主要包括:"success"、"notmodified"、"error"、"timeout"、"parsererror",而xhr.status如下所講。 一 FFMPEG進階系列03-ffmpeg轉碼專題(中)x264引數詳解概述 x264編碼引數簡介 版本 x264.exe --fullhelp 列印 x264 core:152 r2851 ba24899 Syntax: x264 [options] -o outfile infile Presets(預設) 用於簡化命令列而 requests.post()方法中的data、json引數詳解json和dict python中的dict型別要轉換為json格式的資料需要用到json庫: import json <json> = json.dumps(<dict>) <dict> = json.loads(<json& struts2中result引數詳解1.result中name的引數: SUCCESS:Action正確的執行完成,返回相應的檢視,success是name屬性的預設值; NONE:表示Action正確的執行完成,但並不返回任何檢視; ERROR:表示Action執行失敗,返回到錯誤處理檢視; I caffe中網路結構引數詳解prototxt檔案是caffe的配置檔案,用於儲存CNN的網路結構和配置資訊。prototxt檔案有三種,分別是deploy.prototxt,train_val.prototxt和solver.prototxt。 1. solver.prototxt solver.prototxt是caffe的配置檔 JNI原生函式中JNIEnv引數詳解JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv *env,jobject thiz) 原生程式碼通過JNIEnv介面指標提供的各種函式來使 InputStream中mark方法readlimit引數詳解InputStream中mark方法readlimit引數詳解 mark(int readlimit); 網上給出的解釋: /***************************************************************/ readlimit 引數給 C#中static void Main(string[] args) 引數詳解1 using System; 2 3 namespace DemoMainArgs 4 { 5 class Program 6 { 7 /// <summary> 8 /// 應用程式入口 9 /// < Histogram中各個引數詳解histogram從不會到理解的過程: 1.我想先從讀取histogram的bins的方法說起.(Mat hist,假設已經過calchist()) 首先 Mat型別的hist,他的維數是dims的,這就決定了,Mat hist中每個bins的存放形式.如果dim ASP.NET 中 OutputCache 指令引數詳解使用@ OutputCache指令使用@ OutputCache指令,能夠實現對頁面輸出快取的一般性需要。@ OutputCache指令在ASP.NET頁或者頁中包含的使用者控制元件的頭部宣告。這種方式非常方便,只需幾個簡單的屬性設定,就能夠實現頁面的輸出快取 策略。@ OutputCache指令宣告程式碼如 Linux中top命令引數詳解本篇博文主要講解有關top命令,top命令的主要功能是檢視程序活動狀態以及一些系統狀況。 TOP是一個動態顯示過程,即可以通過使用者按鍵來不斷重新整理當前狀態.如果在前臺執行該命令,它將獨佔前臺,直到使用者終止該程式為止.比較準確的說,top命令提供了實時的對 PHP中的預定義變數$_SERVER引數詳解在PHP編碼中,經常遇到需要使用位址列的資訊,比如域名、訪問的URL、URL帶的引數等,這些資訊PHP伺服器都存在了預定義變數$_SERVER中。文件解釋:$_SERVER 是一個包含了諸如 Flask中傳遞引數詳解1.get請求 request.args.get("key") 獲取get請求引數 2.post請求 request.form.get("key", type=str, default=None) 獲取表單資料 request.values.get("key") 獲取 Qt中Makefile檔案裡INCPATH和LIBS引數詳解1 LIBS中的-l 和 -L引數 -l 引數是用來指定程式要連線的庫, -l引數緊接著就是庫名, 庫名和真正的庫檔名的差別, 以數學庫為例, 其庫名為 m , 其 庫檔名為 libm.so,也就 Flume中hdfs sink配置引數詳解type hdfs path 寫入hdfs的路徑,需要包含檔案系統標識,比如:hdfs://namenode/flume/webdata/ 可以使用flume提供的日期及%{host}表示式。 filePrefix 預設值: |