[發(fā)明專利]一種多線程任務(wù)處理方法、裝置及電子設(shè)備有效
| 申請?zhí)枺?/td> | 202010946007.8 | 申請日: | 2020-09-10 |
| 公開(公告)號: | CN112000455B | 公開(公告)日: | 2022-02-01 |
| 發(fā)明(設(shè)計(jì))人: | 王明星;包明生;楊接康 | 申請(專利權(quán))人: | 華云數(shù)據(jù)控股集團(tuán)有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/50 |
| 代理公司: | 蘇州友佳知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 32351 | 代理人: | 儲振 |
| 地址: | 214000 江*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 多線程 任務(wù) 處理 方法 裝置 電子設(shè)備 | ||
本發(fā)明提供了一種多線程任務(wù)處理方法、裝置及電子設(shè)備,多線程任務(wù)處理方法包括為線程池的核心線程數(shù)設(shè)置初始化閾值范圍;對輸入線程池的任務(wù)過濾出IO密集型任務(wù);采用輪詢方式獲取宿主機(jī)的指標(biāo)數(shù)據(jù),以確定線程池的核心線程數(shù)是否觸發(fā)調(diào)整初始化閾值范圍以得到當(dāng)前閾值范圍的事件;其中,是否觸發(fā)調(diào)整初始化閾值范圍的事件基于宿主機(jī)的指標(biāo)數(shù)據(jù)予以確定,初始化閾值范圍由核心線程數(shù)最大值與核心線程數(shù)最小值予以確定。通過本申請所揭示的技術(shù)方案,不僅提高了核心線程對多任務(wù)的響應(yīng)能力,提高了基于線程池對IO密集型任務(wù)的響應(yīng)能力,并能夠有效地防止核心線程由于被頻繁創(chuàng)建或者撤銷所導(dǎo)致的不必要的計(jì)算開銷。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種多線程任務(wù)處理方法、裝置及電子設(shè)備。
背景技術(shù)
線程池作為線程(thread)的集合,線程池在系統(tǒng)啟動時即創(chuàng)建大量空閑的線程,若程序?qū)⒁粋€任務(wù)傳給線程池,線程池就會啟動一條線程來執(zhí)行這個任務(wù),執(zhí)行結(jié)束以后,該線程并不會死亡,而是再次返回線程池中成為空閑狀態(tài),等待執(zhí)行下一個任務(wù)。在云計(jì)算技術(shù)中,線程包含用戶線程(User thread)與內(nèi)核線程(Kernel thread),線程池保證內(nèi)核線程的充分利用,并防止被過度調(diào)用,且能夠支持高并發(fā)的任務(wù)響應(yīng)。
現(xiàn)有技術(shù)中的線程池只能適應(yīng)執(zhí)行CPU密集型任務(wù)的場景,若當(dāng)前線程數(shù)超過CPU的核心線程數(shù)時,線程池受限于宿主機(jī)中CPU的核心線程數(shù)的限制,因此不會額外增加核心線程,而是將線程排入隊(duì)列中進(jìn)行等待,以等待核心線程出現(xiàn)空閑時對該線程執(zhí)行調(diào)用操作。然而,在云計(jì)算場景(例如云平臺、Web系統(tǒng)、APP)中,存在大量的IO操作、讀/寫操作、遷移操作等非CPU密集型任務(wù)。但當(dāng)核心線程數(shù)達(dá)到上限后,即使將任務(wù)放入隊(duì)列則任務(wù)依然是阻塞的,此時需要等待核心線程結(jié)束且不被其他任務(wù)搶占時才能被繼續(xù)執(zhí)行。由此導(dǎo)致線程池中的核心線程利用率較低,且無法滿足對高并發(fā)任務(wù)的及時響應(yīng),對軟件系統(tǒng)或者云平臺的穩(wěn)定性也會造成一定的影響。
數(shù)據(jù)或者任務(wù)處理是CPU密集型任務(wù),對數(shù)據(jù)或者任務(wù)執(zhí)行接收或者發(fā)送操作是IO密集型任務(wù)。由于線程池中的核心線程規(guī)模(CorePoolSize)在線程池初始化時所包含的核心線程的數(shù)量是固定的。目前,為了提高對數(shù)據(jù)或者任務(wù)的并發(fā)處理能力,通常采用增加線程池中核心線程的技術(shù)手段予以實(shí)現(xiàn)。但是核心線程的數(shù)量配置過大則會導(dǎo)致系統(tǒng)或者云平臺中CPU及內(nèi)存效果過大。為了保證資源對系統(tǒng)或者云平臺其他業(yè)務(wù)的合理響應(yīng),通常不能將CPU和/或內(nèi)存的使用率分配給核心線程的使用率達(dá)到100%。現(xiàn)有技術(shù)中為了保證核心線程對任務(wù)的有效響應(yīng),通常為會為不同核心線程設(shè)置不同的優(yōu)先級,以滿足對不同任務(wù)的積極響應(yīng),具體參公開號為CN110502320A的中國發(fā)明專利公開本所示。同時,申請人指出如果過度無序的創(chuàng)建或者刪除核心線程,必然導(dǎo)致不必要的計(jì)算開銷,從而導(dǎo)致系統(tǒng)或者云平臺的不穩(wěn)定性,并會對用戶體驗(yàn)造成一定的影響。
有鑒于此,有必要對現(xiàn)有技術(shù)中的多線程任務(wù)處理方法及其裝置予以改進(jìn),以解決上述問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于揭示一種多線程任務(wù)處理方法、裝置及電子設(shè)備,用以解決現(xiàn)有技術(shù)所存在的缺陷,尤其是為了提高核心線程對多任務(wù)的響應(yīng)能力,并提高基于線程池對IO密集型任務(wù)的響應(yīng)能力,并防止核心線程由于被頻繁創(chuàng)建或者撤銷所導(dǎo)致的不必要的計(jì)算開銷。
為實(shí)現(xiàn)上述第一個發(fā)明目的,本發(fā)明提供了一種多線程任務(wù)處理方法,包括:
為線程池的核心線程數(shù)設(shè)置初始化閾值范圍;
對輸入線程池的任務(wù)過濾出IO密集型任務(wù);
采用輪詢方式獲取宿主機(jī)的指標(biāo)數(shù)據(jù),以確定線程池的核心線程數(shù)是否觸發(fā)調(diào)整初始化閾值范圍以得到當(dāng)前閾值范圍的事件;
其中,是否觸發(fā)調(diào)整初始化閾值范圍的事件基于宿主機(jī)的指標(biāo)數(shù)據(jù)予以確定,所述初始化閾值范圍由核心線程數(shù)最大值與核心線程數(shù)最小值予以確定。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華云數(shù)據(jù)控股集團(tuán)有限公司,未經(jīng)華云數(shù)據(jù)控股集團(tuán)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010946007.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 多線程應(yīng)用系統(tǒng)的異常處理方法和異常處理裝置
- 一種面向片上網(wǎng)絡(luò)的多線程調(diào)度實(shí)現(xiàn)方法
- 基于計(jì)算機(jī)多線程多核顯微鏡細(xì)胞圖像快速掃描處理方法
- 一種基于同步鎖的多線程處理方法、終端以及存儲介質(zhì)
- 多線程并發(fā)處理系統(tǒng)及方法
- 海外控股估值流程控制方法、裝置、計(jì)算機(jī)設(shè)備及存儲介質(zhì)
- 讀數(shù)方法、電子裝置、計(jì)算機(jī)設(shè)備及存儲介質(zhì)
- 一種基于云平臺多線程調(diào)度的方法、系統(tǒng)、設(shè)備及介質(zhì)
- 一種基于云平臺的前端多線程調(diào)度方法和系統(tǒng)
- 多線程調(diào)度方法、裝置、電子設(shè)備及存儲介質(zhì)
- 任務(wù)協(xié)作裝置及方法
- 用于量化任務(wù)價(jià)值的任務(wù)管理方法及裝置
- 用于運(yùn)行任務(wù)的系統(tǒng)、方法和裝置
- 一種分布式任務(wù)調(diào)度系統(tǒng)及方法
- 任務(wù)信息處理方法
- 一種同步任務(wù)異步執(zhí)行的方法和調(diào)度系統(tǒng)
- 數(shù)據(jù)處理方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀介質(zhì)
- 一種自動分配和推送的任務(wù)管理平臺及方法
- 程序執(zhí)行控制的裝置及方法、終端和存儲介質(zhì)
- 基于會話的任務(wù)待辦方法、系統(tǒng)、電子設(shè)備及存儲介質(zhì)





