本公開涉及計(jì)算機(jī),本公開尤其涉及數(shù)據(jù)處理方法、數(shù)據(jù)處理系統(tǒng)、存儲(chǔ)介質(zhì)及計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、在程序開發(fā)過程中,經(jīng)常會(huì)使用到變量對(duì)象來存儲(chǔ)各個(gè)線程的局部變量。每次獲取或設(shè)置變量對(duì)象時(shí),都需要進(jìn)行哈希查找以找到對(duì)應(yīng)的線程變量副本,如果一個(gè)線程結(jié)束了但是變量對(duì)象沒有被清理,那么其鍵值對(duì)關(guān)系仍然保留著對(duì)該變量對(duì)象的引用。這樣會(huì)導(dǎo)致變量對(duì)象無法被垃圾回收,從而引發(fā)內(nèi)存泄露。
技術(shù)實(shí)現(xiàn)思路
1、為了解決上述技術(shù)問題之一,本公開提供了一種數(shù)據(jù)處理方法、數(shù)據(jù)處理系統(tǒng)、存儲(chǔ)介質(zhì)及計(jì)算機(jī)程序產(chǎn)品。
2、本公開第一方面提供了一種數(shù)據(jù)處理方法,數(shù)據(jù)處理方法包括:獲取線程任務(wù),并生成所述線程任務(wù)在鍵值對(duì)數(shù)據(jù)庫中對(duì)應(yīng)的目標(biāo)鍵,所述鍵值對(duì)數(shù)據(jù)庫中包括線程局部變量對(duì)象,所述目標(biāo)鍵與所述鍵值對(duì)數(shù)據(jù)庫中的線程局部變量對(duì)象對(duì)應(yīng);將所述目標(biāo)鍵加入定時(shí)任務(wù)隊(duì)列,并基于所述定時(shí)任務(wù)隊(duì)列中的所述目標(biāo)鍵的過期時(shí)間,定時(shí)更新所述目標(biāo)鍵對(duì)應(yīng)的所述線程任務(wù)的過期時(shí)間;在所述線程任務(wù)執(zhí)行完成,或者所述線程任務(wù)過期時(shí),將所述目標(biāo)鍵從所述定時(shí)任務(wù)隊(duì)列中移除,并刪除所述目標(biāo)鍵對(duì)應(yīng)的所述線程局部變量對(duì)象。
3、一種可選的實(shí)施方式中,所述線程任務(wù)是同步執(zhí)行的多個(gè)線程任務(wù)中的一個(gè)。
4、一種可選的實(shí)施方式中,在獲取所述線程任務(wù)前,還包括:創(chuàng)建所述線程局部變量對(duì)象,所述線程局部變量對(duì)象用于在所述鍵值對(duì)數(shù)據(jù)庫中存儲(chǔ)局部變量信息。
5、一種可選的實(shí)施方式中,基于所述定時(shí)任務(wù)隊(duì)列中的所述目標(biāo)鍵的過期時(shí)間,定時(shí)更新所述目標(biāo)鍵對(duì)應(yīng)的所述線程任務(wù)的過期時(shí)間,包括:基于所述目標(biāo)鍵的過期時(shí)間,配置更新周期;在每個(gè)所述更新周期的開始時(shí)刻,定時(shí)獲取所述目標(biāo)鍵的剩余過期時(shí)長,并利用所述目標(biāo)鍵的剩余過期時(shí)長更新所述線程任務(wù)的過期時(shí)間;以及在所述剩余過期時(shí)長小于或等于0時(shí),確定所述線程任務(wù)過期。
6、一種可選的實(shí)施方式中,在生成所述線程任務(wù)在鍵值對(duì)數(shù)據(jù)庫對(duì)應(yīng)的目標(biāo)鍵之前,還包括:創(chuàng)建所述線程局部變量對(duì)象的容器;其中,生成所述線程任務(wù)在鍵值對(duì)數(shù)據(jù)庫對(duì)應(yīng)的目標(biāo)鍵,包括:基于所述線程任務(wù),調(diào)用所述線程局部變量對(duì)象的容器生成所述目標(biāo)鍵。
7、一種可選的實(shí)施方式中,在刪除所述目標(biāo)鍵對(duì)應(yīng)的所述線程局部變量對(duì)象之前,還包括:創(chuàng)建擴(kuò)展對(duì)象;其中,刪除所述目標(biāo)鍵對(duì)應(yīng)的所述線程局部變量對(duì)象,包括:基于所述擴(kuò)展對(duì)象,調(diào)用所述線程局部變量對(duì)象的容器根據(jù)所述目標(biāo)鍵刪除所述線程局部變量對(duì)象。
8、一種可選的實(shí)施方式中,定時(shí)更新所述線程任務(wù)的過期時(shí)間的更新周期小于所述線程任務(wù)的過期時(shí)間。
9、本公開第二方面提供了一種數(shù)據(jù)處理系統(tǒng),數(shù)據(jù)處理系統(tǒng)包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序被所述處理器執(zhí)行時(shí),所述處理器執(zhí)行以下過程:獲取線程任務(wù),并生成所述線程任務(wù)在鍵值對(duì)數(shù)據(jù)庫中對(duì)應(yīng)的目標(biāo)鍵,所述鍵值對(duì)數(shù)據(jù)庫中包括線程局部變量對(duì)象,所述目標(biāo)鍵與所述鍵值對(duì)數(shù)據(jù)庫中的線程局部變量對(duì)象對(duì)應(yīng);將所述目標(biāo)鍵加入定時(shí)任務(wù)隊(duì)列,并基于所述定時(shí)任務(wù)隊(duì)列中的所述目標(biāo)鍵的過期時(shí)間,定時(shí)更新所述目標(biāo)鍵對(duì)應(yīng)的所述線程任務(wù)的過期時(shí)間;在所述線程任務(wù)執(zhí)行完成,或者所述線程任務(wù)過期時(shí),將所述目標(biāo)鍵從所述定時(shí)任務(wù)隊(duì)列中移除,并刪除所述目標(biāo)鍵對(duì)應(yīng)的所述線程局部變量對(duì)象。
10、本公開第三方面提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器運(yùn)行時(shí)執(zhí)行本公開任一個(gè)實(shí)施方式的數(shù)據(jù)處理方法。
11、本公開第四方面提供了一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器運(yùn)行時(shí)執(zhí)行本公開任一個(gè)實(shí)施方式的數(shù)據(jù)處理方法。
1.一種數(shù)據(jù)處理方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,在獲取所述線程任務(wù)之前,還包括:
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,基于所述定時(shí)任務(wù)隊(duì)列中的所述目標(biāo)鍵的過期時(shí)間,定時(shí)更新所述目標(biāo)鍵對(duì)應(yīng)的所述線程任務(wù)的過期時(shí)間,包括:
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,在生成所述線程任務(wù)在鍵值對(duì)數(shù)據(jù)庫對(duì)應(yīng)的目標(biāo)鍵之前,還包括:
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理方法,其特征在于,在刪除所述目標(biāo)鍵對(duì)應(yīng)的所述線程局部變量對(duì)象之前,還包括:
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,定時(shí)更新所述線程任務(wù)的過期時(shí)間的更新周期小于所述線程任務(wù)的過期時(shí)間。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述線程任務(wù)是同步執(zhí)行的多個(gè)線程任務(wù)中的一個(gè)。
8.一種數(shù)據(jù)處理系統(tǒng),其特征在于,包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序被所述處理器執(zhí)行時(shí),所述處理器執(zhí)行以下過程:
9.一種可讀存儲(chǔ)介質(zhì),其特征在于,所述可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)用于實(shí)現(xiàn)如權(quán)利要求1至7任一項(xiàng)所述的方法。
10.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)至少用于實(shí)施如權(quán)利要求1至7任一項(xiàng)所述的方法。