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系統中的部門,人員,成本中心等資料,由於資料量比較大,所以採用執行緒池技術,大大縮短了同步的時間,**如下:
publicstatic
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...