public void execute(runnable command) finally finally catch (interruptedexception ie) catch (runtimeexception ex) finally finally catch (securityexception se) finally finally catch (interruptedexception ie) finally finally finally catch (securityexception se) finally {
mainlock.unlock();
mainlock和runlock的作用?
runlock在runtask(runnable task) 和interruptifidle()中使用,目的是為了interruptifidle不影響正在執行的任務。interruptnow 沒有使用runlock,即使任務在執行,也打斷。
//當改變poolsize, corepoolsize, maximumpoolsize, runstate, and workers set.這些共享變數時,保證資料安全
private final reentrantlock mainlock = new reentrantlock();
worker.thread?
worker.thread 是新建立的執行緒
//建立**如下
實現類:defaultthreadfactory implements threadfactory
public thread newthread(runnable r) {
thread t = new thread(group, r,
nameprefix + threadnumber.getandincrement(),
0);if (t.isdaemon())
t.setdaemon(false);?
if (t.getpriority() != thread.norm_priority)
t.setpriority(thread.norm_priority);?
return t;
JUC原始碼分析21 佇列
linkedblockingdeque基於雙向鍊錶實現的阻塞佇列,根據構造傳入的容量大小決定有界還是無界,預設不傳的話,大小integer.max。實現blockingdequeue介面,這個介面繼承blockingqueue和dequeue,看下介面方法 public inte ce blocki...
Jdk1 6 JUC原始碼解析彙總
jdk1.6 juc原始碼解析 1 atomic atomic jdk1.6 juc原始碼解析 2 atomic atomic array jdk1.6 juc原始碼解析 3 atomic atomic fieldupdater jdk1.6 juc原始碼解析 4 atomic atomicstam...
spring原始碼分析 spring原始碼分析
1.spring 執行原理 spring 啟動時讀取應用程式提供的 bean 配置資訊,並在 spring 容器中生成乙份相應的 bean 配置登錄檔,然後根據這張登錄檔例項化 bean,裝配好 bean 之間的依賴關係,為上 層應用提供準備就緒的執行環境。二 spring 原始碼分析 1.1spr...