ExecutorService使用情況

2022-09-12 01:18:16 字數 1521 閱讀 8188

1 executorservice是是乙個介面,繼承了executor

2 而executor亦是乙個介面,該介面只包含了乙個方法void execute(runnable command)

3 executors 

該類是乙個輔助類,此包中所定義的 executor、executorservice、scheduledexecutorservice、threadfactory 和 callable 類的工廠和實用方法。

此類支援以下各種方法:

• 建立並返回設定有常用配置字串的 executorservice 的方法。

• 建立並返回設定有常用配置字串的 scheduledexecutorservice 的方法。

• 建立並返回「包裝的」executorservice 方法,它通過使特定於實現的方法不可訪問來禁用重新配置。

• 建立並返回 threadfactory 的方法,它可將新建立的執行緒設定為已知的狀態。

• 建立並返回非閉包形式的 callable 的方法,這樣可將其用於需要 callable 的執行方法中。

4、建立executorservice的方法:

newfixedthreadpool(); 建立乙個可重用固定執行緒數的執行緒池,以共享的無界佇列方式來執行這些執行緒

newsinglethreadexecutor ;執行緒數量為1的fixedthreadpool.如果像這個提交了多個任務,這些任務將會排隊,每個任務都會在下個任務開始直接執行結束,所有的任務使用相同的執行緒

voidshutdown() :啟動一次順序關閉,執行以前提交的任務,但不接受新任務。如果已經關閉,則呼叫沒有其他作用

voidexecute(runnable command) 在未來某個時間執行給定的命令。該命令可能在新的執行緒、已入池的執行緒或者正呼叫的執行緒中執行,這由 executor實現決定。

工作當中同步介面同步eas系統中的部門,人員,成本中心等資料,由於資料量比較大,所以採用執行緒池技術,大大縮短了同步的時間,**如下:

public

static

boolean changedeptforoa(jsonarray jsonarray, boolean fullflag)

dbupdatethread dbthread = new dbupdatethread(obj, nowdatetime, "

department");

thread_poll.execute(dbthread);

}thread_poll.shutdown();

//判斷執行緒結束

while (true

) thread.sleep(

1000

); }

if(fullflag) }}

catch

(exception e)

finally

}return

true

; }

執行緒池ExecutorService

執行緒池 任務提交到執行緒池,而不是直接交給某執行緒,執行緒池拿到任務後,它在內部找空閒的執行緒進行執行 封裝 任務是提交給執行緒池,乙個執行緒只能執行乙個任務,但可以同時向乙個執行緒池提交多個任務。建立固定大小的執行緒池 建立快取執行緒池 如何實現執行緒死掉後重新啟動?答案 建立單一執行緒池exe...

執行緒十四 ExecutorService

executorservice不僅能呼叫runnable的任務,它還提供了呼叫callable任務的方法。callable任務中的call方法能夠返回任務執行的結果,同時還可以丟擲受檢的異常,call方法宣告了乙個throws exception子句。為了描述executorservice的應用,我...

ExecutorService執行緒池

executorservice 建立多執行緒的步驟 1。定義執行緒類 class handler implements runnable 2。建立executorservice執行緒池 3。呼叫執行緒池操作 幾種不同的executorservice執行緒池物件 1.newcachedthreadpo...