quartz原始碼分析 執行引擎和執行緒模型

2021-08-08 06:19:19 字數 1685 閱讀 9958

title: quartz原始碼分析——執行引擎和執行緒模型

date: 2017-09-09 23:14:48

categories: quartz

tags: [quartz, 原始碼分析]

------

[toc]

軟體版本:quartz-2.2.3

類名

從上述配置檔案可以看出quartz配置了乙個執行緒池,實現名稱為******threadpool, 這個執行緒池作用是什麼呢,我把注釋寫在**中。

以上是這個類的成員變數,從上面的成員變數可以看出,這個執行緒池用linkedlist儲存執行所有job的工人(worker),來管理了所有的工人(worker),那麼我們就叫******threadpool為工頭兒吧,老闆要分派任務,肯定會找工頭兒,工頭在找空閒的工人來處理工作。

那工頭對老闆提供的介面是什麼呢,繼續往下看

上面的runinthread 就是工頭對老闆提供的對外介面,runnable就是老闆安排的工作,流程是這樣的:

介紹了工頭,再來介紹一下工人,工頭兒通過呼叫work.run方法,工人就開始工作了

開一下**

工頭把任務交給工人,工人執行緒此時阻塞,當runnable被賦值時,工作執行緒被喚醒。流程圖如下:

quartzschedulerthread是quartz裡真正負責時間排程的類,這個執行緒的run方法也是最外層的loop。主要負責任務觸發,工作包裝,任務批處理的控制,這個方法是本章最難的乙個方法了,看一下主loop

boss執行緒涉及的細節非常多,看一下流程圖

上面的流程介紹的差不多了,建議對著**看流程,有助於理解。

一圖以概之

以上是自己的一家之言,若有錯誤之處,請不吝賜教,共同提高。

Nmap原始碼分析(指令碼引擎)

2012年9月6日 nmap提供了強大的指令碼引擎 nse 以支援通過lua程式設計來擴充套件nmap的功能。目前指令碼庫已經包含300多個常用的lua指令碼,輔助完成nmap的主機發現 埠掃瞄 服務偵測 作業系統偵測四個基本功能,並補充了其他掃瞄能力 如執行http服務詳細的探測 暴力破解簡單密碼...

Nmap原始碼分析(指令碼引擎)

nmap提供了強大的指令碼引擎 nse 以支援通過lua程式設計來擴充套件nmap的功能。目前指令碼庫已經包含300多個常用的lua指令碼,輔助完成nmap的主機發現 埠掃瞄 服務偵測 作業系統偵測四個基本功能,並補充了其他掃瞄能力 如執行http服務詳細的探測 暴力破解簡單密碼 檢查常見的漏洞資訊...

Mybatis執行流程分析(原始碼篇)

1.sqlsessionfactory 與 sqlsession.通過前面的章節對於mybatis 的介紹及使用,大家都能體會到sqlsession的重要性了吧,沒錯,從表面上來看,咱們都是通過sqlsession去執行sql語句 注意 是從表面看,實際的待會兒就會講 那麼咱們就先看看是怎麼獲取sq...