1. 程式人生 > >實際項目中Java多線程模型的總結整理

實際項目中Java多線程模型的總結整理

java

分享一下最近項目中用到的多線程模型。

需要實現:根據租戶填寫的表單,自動部署ES集群,提供ES服務。

基本思路:

就是將一個事務生命周期分成不同的階段,每個階段都是用線程去負責執行。

目前主要分為四個階段:事件監聽階段,事件提交階段,執行器階段,狀態校驗階段


流程圖如下:

技術分享


線程分類:

A、監聽線程

B、工作線程

C、狀態校驗線程

D、執行器線程


原理圖簡單介紹:

1、AcceptorThread線程:監聽操作對列表,將新產生的事件記錄扔進事件分類器,並且同時往內存容器中添加一條記錄。

2、事件分類器:根據事件的類型,創建不同的工作線程

3、工作線程:工作線程是具體幹活的,如負責調用marathon的create接口,刪除接口,停止接口等

4、執行器:

A、不斷的監聽執行容器,有任務的話,就去執行,如停止節點,啟動節點,恢復節點等操作。

B、更新節點表的狀態,以及 內存緩存容器中節點的狀態

5、OptStateThread:監聽內存緩存容器OptMap,如果有新的事件發生,根據類型產生不同的校驗線程;

6、校驗線程:具體負責校驗的;根據校驗的結果來更新集群的狀態


總結:

A、體現了生產者,消費者思想

B、對事件進行了分割,各自線程只負責自己單獨的部分。

C、對事務的生命周期,要學會進行合理的拆分

D、要橫向思維,分階段,分模塊劃分


代碼不是很重要,主要是理解這種設計模式,設計思路;

其實,可以從Netty的多線程模型中吸取知識,從而應用到以後的項目中。










本文出自 “XEJ分布式工作室” 博客,請務必保留此出處http://xingej.blog.51cto.com/7912529/1979357

實際項目中Java多線程模型的總結整理