數(shù)據(jù)庫操作任務(wù)的處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫操作任務(wù)的處理方法和
目.0
【背景技術(shù)】
[0002]移動(dòng)終端上執(zhí)行的應(yīng)用程序會(huì)產(chǎn)生大量的數(shù)據(jù)庫操作需求,從而產(chǎn)生大量的數(shù)據(jù)庫操作任務(wù),典型的如對(duì)數(shù)據(jù)庫的讀取、寫入、刪除、查詢等操作任務(wù),以及用戶接口(UserInterface,UI)交互任務(wù)等。
[0003]現(xiàn)有技術(shù)有兩種解決方式,一種是由主線程,按照應(yīng)用程序中各類任務(wù)的產(chǎn)生順序,同步執(zhí)行數(shù)據(jù)庫操作任務(wù);另一種是由主線程產(chǎn)生數(shù)據(jù)庫操作任務(wù),由其他線程異步執(zhí)行數(shù)據(jù)庫操作任務(wù),將結(jié)果返回給主線程。
[0004]第一種方案存在的缺陷在于:由于數(shù)據(jù)庫操作任務(wù)的執(zhí)行時(shí)間長(zhǎng),所以使得主線程對(duì)UI交互任務(wù)的處理延遲,造成UI卡頓現(xiàn)象;第二種方案存在的缺陷在于:由于數(shù)據(jù)庫操作任務(wù)在另一異步線程執(zhí)行,會(huì)導(dǎo)致操作順序錯(cuò)亂,和UI交互任務(wù)觸發(fā)的數(shù)據(jù)庫操作任務(wù)返回結(jié)果較慢,造成UI交互任務(wù)無法正常執(zhí)行,例如顯示白頁。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種數(shù)據(jù)庫操作任務(wù)的處理方法和裝置,以優(yōu)化對(duì)在執(zhí)行應(yīng)用程序的過程中產(chǎn)生的數(shù)據(jù)庫操作任務(wù)的處理方式。
[0006]第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫操作任務(wù)的處理方法,包括:
[0007]主線程在執(zhí)行應(yīng)用程序的過程中,根據(jù)應(yīng)用上層業(yè)務(wù)請(qǐng)求產(chǎn)生數(shù)據(jù)庫操作任務(wù);
[0008]所述主線程根據(jù)所述上層業(yè)務(wù)請(qǐng)求的屬性設(shè)置數(shù)據(jù)庫操作任務(wù)的配置信息和優(yōu)先級(jí);
[0009]所述主線程根據(jù)所述優(yōu)先級(jí),將數(shù)據(jù)庫操作任務(wù)調(diào)度給數(shù)據(jù)庫處理線程;
[0010]所述數(shù)據(jù)庫處理線程根據(jù)所述數(shù)據(jù)庫操作任務(wù)的配置信息執(zhí)行任務(wù);
[0011]所述數(shù)據(jù)庫處理線程將任務(wù)執(zhí)行結(jié)果返回給所述主線程的上層業(yè)務(wù)請(qǐng)求。
[0012]第二方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫操作任務(wù)的處理裝置,包括:
[0013]操作任務(wù)生成模塊,用于主線程在執(zhí)行應(yīng)用程序的過程中,根據(jù)應(yīng)用上層業(yè)務(wù)請(qǐng)求產(chǎn)生數(shù)據(jù)庫操作任務(wù);
[0014]任務(wù)信息設(shè)置模塊,用于所述主線程根據(jù)所述上層業(yè)務(wù)請(qǐng)求的屬性設(shè)置數(shù)據(jù)庫操作任務(wù)的配置信息和優(yōu)先級(jí);
[0015]操作任務(wù)調(diào)度模塊,用于所述主線程根據(jù)所述優(yōu)先級(jí),將數(shù)據(jù)庫操作任務(wù)調(diào)度給數(shù)據(jù)庫處理線程;
[0016]操作任務(wù)執(zhí)行模塊,用于所述數(shù)據(jù)庫處理線程根據(jù)所述數(shù)據(jù)庫操作任務(wù)的配置信息執(zhí)行任務(wù);
[0017]執(zhí)行結(jié)果返回模塊,用于所述數(shù)據(jù)庫處理線程將任務(wù)執(zhí)行結(jié)果返回給所述主線程的上層業(yè)務(wù)請(qǐng)求。
[0018]本發(fā)明實(shí)施例提供的數(shù)據(jù)庫操作任務(wù)的處理方法和裝置,通過主線程在執(zhí)行應(yīng)用程序的過程中,根據(jù)不同的應(yīng)用上層業(yè)務(wù)請(qǐng)求產(chǎn)生相應(yīng)的數(shù)據(jù)庫操作任務(wù),并通過所述主線程根據(jù)數(shù)據(jù)庫操作任務(wù)對(duì)應(yīng)的優(yōu)先級(jí)從高到低的順序,將數(shù)據(jù)庫操作任務(wù)異步調(diào)度給數(shù)據(jù)庫處理線程進(jìn)行處理,并將任務(wù)執(zhí)行結(jié)果返回至主線程的上層業(yè)務(wù)請(qǐng)求,一方面,使得優(yōu)先級(jí)較高的數(shù)據(jù)庫操作任務(wù)可以被數(shù)據(jù)庫處理線程優(yōu)先執(zhí)行,保證了優(yōu)先級(jí)較高的數(shù)據(jù)庫操作任務(wù)能夠及時(shí)返回任務(wù)執(zhí)行結(jié)果,使得某些依賴于該及時(shí)返回的任務(wù)執(zhí)行結(jié)果的數(shù)據(jù)庫操作任務(wù)可以有效執(zhí)行,避免了操作順序錯(cuò)亂;另一方面,避免了由主線程按照應(yīng)用程序中各類任務(wù)的產(chǎn)生順序,同步執(zhí)行數(shù)據(jù)庫操作任務(wù)所導(dǎo)致的對(duì)某些優(yōu)先級(jí)較高的數(shù)據(jù)庫操作任務(wù)的處理延遲以及所出現(xiàn)的UI卡頓現(xiàn)象。
【附圖說明】
[0019]為了更清楚地說明本發(fā)明,下面將對(duì)本發(fā)明中所需要使用的附圖做一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0020]圖1為本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)庫操作任務(wù)的處理方法的流程示意圖;
[0021]圖2a為本發(fā)明實(shí)施例二提供的數(shù)據(jù)庫操作任務(wù)的處理方法中一種數(shù)據(jù)庫操作任務(wù)的調(diào)度的流程示意圖;
[0022]圖2b為本發(fā)明實(shí)施例二適用的一種數(shù)據(jù)庫操作任務(wù)的處理實(shí)例的示意圖;
[0023]圖3為本發(fā)明實(shí)施例三提供的一種數(shù)據(jù)庫操作任務(wù)的處理方法的流程示意圖;
[0024]圖4為本發(fā)明實(shí)施例四提供的一種數(shù)據(jù)庫操作任務(wù)的處理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0025]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例中的技術(shù)方案作進(jìn)一步詳細(xì)描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。可以理解的是,此處所描述的具體實(shí)施例僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部?jī)?nèi)容。
[0026]在更加詳細(xì)地討論示例性實(shí)施例之前應(yīng)當(dāng)提到的是,一些示例性實(shí)施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項(xiàng)操作(或步驟)描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時(shí)實(shí)施。此外,各項(xiàng)操作的順序可以被重新安排。當(dāng)其操作完成時(shí)所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對(duì)應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
[0027]實(shí)施例一
[0028]請(qǐng)參閱圖1,為本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)庫操作任務(wù)的處理方法的流程示意圖。本發(fā)明實(shí)施例的方法可以由配置以硬件和/或軟件實(shí)現(xiàn)的數(shù)據(jù)庫操作任務(wù)的處理裝置來執(zhí)行,該實(shí)現(xiàn)裝置典型的是配置于運(yùn)行應(yīng)用程序的終端中。
[0029]該方法包括:操作110?操作150。
[0030]110、主線程在執(zhí)行應(yīng)用程序的過程中,根據(jù)應(yīng)用上層業(yè)務(wù)請(qǐng)求產(chǎn)生數(shù)據(jù)庫操作任務(wù)。
[0031]在運(yùn)行應(yīng)用程序的過程中,首先需要?jiǎng)?chuàng)建并運(yùn)行一個(gè)或多個(gè)軟件線程,然后,需要將軟件線程調(diào)度到中央處理器中運(yùn)行。本實(shí)施例中,在運(yùn)行應(yīng)用程序的過程中,創(chuàng)建并運(yùn)行的軟件線程包括:主線程和數(shù)據(jù)庫處理線程。
[0032]本操作中,所述主線程用于根據(jù)不同的應(yīng)用上層業(yè)務(wù)請(qǐng)求產(chǎn)生相應(yīng)的數(shù)據(jù)庫操作任務(wù)。其中,所述上層業(yè)務(wù)請(qǐng)求可以包括:用戶調(diào)用操作請(qǐng)求,以及應(yīng)用程序后臺(tái)處理請(qǐng)求等。與用戶調(diào)用操作請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)庫操作任務(wù)可包括:由用戶調(diào)用操作所觸發(fā)的對(duì)數(shù)據(jù)庫的讀取、寫入、刪除、查詢等操作任務(wù);與應(yīng)用程序后臺(tái)處理請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)庫操作任務(wù)可包括:由應(yīng)用程序后臺(tái)處理操作所觸發(fā)的對(duì)數(shù)據(jù)庫的讀取、寫入、刪除、查詢等操作任務(wù)。
[0033]120、所述主線程根據(jù)所述上層業(yè)務(wù)請(qǐng)求的屬性設(shè)置數(shù)據(jù)庫操作任務(wù)的配置信息和優(yōu)先