JUC原始碼分析 ThreadPool jdk6

2021-10-02 08:39:15 字數 1082 閱讀 1466

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...