溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

實(shí)際項(xiàng)目中Java多線程模型的總結(jié)整理

發(fā)布時間:2020-06-20 12:53:10 來源:網(wǎng)絡(luò) 閱讀:1850 作者:故新 欄目:建站服務(wù)器

   分享一下最近項(xiàng)目中用到的多線程模型。

     

      需要實(shí)現(xiàn):根據(jù)租戶填寫的表單,自動部署ES集群,提供ES服務(wù)。

基本思路:

        就是將一個事務(wù)生命周期分成不同的階段,每個階段都是用線程去負(fù)責(zé)執(zhí)行。

        目前主要分為四個階段:事件監(jiān)聽階段,事件提交階段,執(zhí)行器階段,狀態(tài)校驗(yàn)階段


流程圖如下:

實(shí)際項(xiàng)目中Java多線程模型的總結(jié)整理


線程分類:

        A、監(jiān)聽線程

        B、工作線程

        C、狀態(tài)校驗(yàn)線程

        D、執(zhí)行器線程


原理圖簡單介紹:

       1、AcceptorThread線程:監(jiān)聽操作對列表,將新產(chǎn)生的事件記錄扔進(jìn)事件分類器,并且同時往內(nèi)存容器中添加一條記錄。

       2、事件分類器:根據(jù)事件的類型,創(chuàng)建不同的工作線程

       3、工作線程:工作線程是具體干活的,如負(fù)責(zé)調(diào)用marathon的create接口,刪除接口,停止接口等     

       4、執(zhí)行器:

            A、不斷的監(jiān)聽執(zhí)行容器,有任務(wù)的話,就去執(zhí)行,如停止節(jié)點(diǎn),啟動節(jié)點(diǎn),恢復(fù)節(jié)點(diǎn)等操作。

            B、更新節(jié)點(diǎn)表的狀態(tài),以及 內(nèi)存緩存容器中節(jié)點(diǎn)的狀態(tài)

       5、OptStateThread:監(jiān)聽內(nèi)存緩存容器OptMap,如果有新的事件發(fā)生,根據(jù)類型產(chǎn)生不同的校驗(yàn)線程;

       6、校驗(yàn)線程:具體負(fù)責(zé)校驗(yàn)的;根據(jù)校驗(yàn)的結(jié)果來更新集群的狀態(tài)


總結(jié):

       A、體現(xiàn)了生產(chǎn)者,消費(fèi)者思想

       B、對事件進(jìn)行了分割,各自線程只負(fù)責(zé)自己單獨(dú)的部分。

       C、對事務(wù)的生命周期,要學(xué)會進(jìn)行合理的拆分

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


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

      其實(shí),可以從Netty的多線程模型中吸取知識,從而應(yīng)用到以后的項(xiàng)目中。










向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI