国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)庫讀寫方法及裝置與流程

      文檔序號(hào):12157807閱讀:306來源:國知局
      數(shù)據(jù)庫讀寫方法及裝置與流程

      本發(fā)明實(shí)施例涉及終端領(lǐng)域,尤其涉及數(shù)據(jù)庫讀寫方法及裝置。



      背景技術(shù):

      為便于聯(lián)系人信息的管理,現(xiàn)有終端通常采用聯(lián)系人數(shù)據(jù)庫保存聯(lián)系人信息。終端上的應(yīng)用可以通過讀操作及寫操作等數(shù)據(jù)庫操作實(shí)現(xiàn)聯(lián)系人信息的讀寫,從而實(shí)現(xiàn)快速撥號(hào)、聯(lián)系人信息備份等功能。隨著終端應(yīng)用的日益多樣化,需要讀寫聯(lián)系人信息的應(yīng)用也越來越多,從而使得終端所要處理的讀操作及寫操作也越來越多。

      為了提高數(shù)據(jù)庫操作的執(zhí)行效率,現(xiàn)有技術(shù)通常會(huì)采用預(yù)寫日志(Write-Ahead Logging,簡稱WAL)模式對(duì)各個(gè)應(yīng)用發(fā)起的讀操作及寫操作進(jìn)行調(diào)度。在WAL模式下,數(shù)據(jù)庫的連接被分為主連接與非主連接兩類,其中主連接可以執(zhí)行讀操作和寫操作,非主連接只用于執(zhí)行讀操作。終端在獲取到應(yīng)用發(fā)起的讀操作后,首先檢測是否存在空閑的非主連接;如果存在空閑的非主連接,則使用空閑的非主連接執(zhí)行該讀操作;如果非主連接均被占用而主連接空閑,則可以使用主連接執(zhí)行該讀操作;如果主連接及非主連接都被占用,則會(huì)將該讀操作放入待執(zhí)行讀操作隊(duì)列的隊(duì)尾,等待非主連接空閑時(shí)按照隊(duì)列順序逐一執(zhí)行待執(zhí)行讀操作隊(duì)列中的各個(gè)讀操作。終端接收到應(yīng)用發(fā)起的寫操作之后,檢測是否存在空閑的主連接;如果存在空閑的主連接,則使用空閑的非主連接執(zhí)行該寫操作;如果主連都被占用,則會(huì)將該讀操作放入待執(zhí)行寫操作隊(duì)列的隊(duì)尾,等待主連接空閑時(shí)按照隊(duì)列順序逐一執(zhí)行待執(zhí)行寫操作隊(duì)列中的各個(gè)寫操作。

      在實(shí)際使用中,存在對(duì)讀操作執(zhí)行效率較為敏感的特定應(yīng)用,例如聯(lián)系人應(yīng)用等。如果該特定應(yīng)用所發(fā)起的讀操作執(zhí)行效率過低,會(huì)造成這些應(yīng)用或整個(gè)終端的用戶體驗(yàn)下降。例如,如果聯(lián)系人應(yīng)用所發(fā)起的讀操作執(zhí)行效率過低,會(huì)導(dǎo)致終端聯(lián)系人信息界面打開緩慢。而在WAL模式下,讀操作執(zhí)行效率受到并發(fā)的讀操作數(shù)量影響,并發(fā)的讀操作數(shù)量越多,讀操作的執(zhí)行效率越低。因此采用現(xiàn)有的WAL模式對(duì)各個(gè)應(yīng)用發(fā)起的讀操作及寫操作進(jìn)行調(diào)度,在并發(fā)的讀操作比較多時(shí),會(huì)嚴(yán)重影響讀操作及寫操作的執(zhí)行效率,造成特定應(yīng)用所發(fā)起讀操作的執(zhí)行效率低下。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明實(shí)施例提供了數(shù)據(jù)庫讀寫方法及裝置,以解決在并發(fā)數(shù)據(jù)庫操作較多時(shí),讀操作的執(zhí)行效率低的問題。

      第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫讀寫方法,所述數(shù)據(jù)庫包含在終端中,所述數(shù)據(jù)庫具有至少一個(gè)主連接和至少兩個(gè)非主連接,所述主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的寫操作,所述非主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的讀操作,該方法包括:所述終端獲取對(duì)所述數(shù)據(jù)庫的讀操作;若所述讀操作由第一應(yīng)用發(fā)起,則使用第一非主連接執(zhí)行所述讀操作;所述第一應(yīng)用為所述終端中的應(yīng)用;其中,所述第一非主連接是預(yù)先設(shè)定的僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作的非主連接;所述至少兩個(gè)非主連接包括至少一個(gè)所述第一非主連接。

      結(jié)合第一方面,在第一方面第一種可能的實(shí)現(xiàn)方式中,所述方法還包括:若所述讀操作由第二應(yīng)用發(fā)起,則使用第二非主連接執(zhí)行所述讀操作;其中,所述第二應(yīng)用與所述第一應(yīng)用不同;所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      結(jié)合第一方面或第一方面第一種可能的實(shí)現(xiàn)方式,在第一方面第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:若所述讀操作由第二應(yīng)用發(fā)起,則使用第二非主連接執(zhí)行所述讀操作;其中,所述第二應(yīng)用與所述第一應(yīng)用不同;所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      結(jié)合第一方面第二種可能的實(shí)現(xiàn)方式,在第一方面第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:當(dāng)所有的所述第一非主連接均被占用時(shí),檢測是否存在空閑的第二非主連接;當(dāng)存在空閑的所述第二非主連接時(shí),使用空閑的所述第二非主連接執(zhí)行所述讀操作;其中,所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      結(jié)合第一方面第三種可能的實(shí)現(xiàn)方式,在第一方面第四種可能的實(shí)現(xiàn)方式中,所述方法還包括:當(dāng)所有的所述第二非主連接均被占用時(shí),將所述讀操作放入第一待處理隊(duì)列中與所述第一應(yīng)用的優(yōu)先級(jí)所對(duì)應(yīng)的位置。

      結(jié)合第一方面或第一方面第一至四種可能的實(shí)現(xiàn)方式其中任意一種,在第一方面第五種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)庫為聯(lián)系人數(shù)據(jù)庫。

      結(jié)合第一方面或第一方面第一至五種可能的實(shí)現(xiàn)方式其中任意一種,在第一方面第六種可能的實(shí)現(xiàn)方式中,所述第一應(yīng)用為聯(lián)系人應(yīng)用。

      結(jié)合第一方面或第一方面第一至六種可能的實(shí)現(xiàn)方式其中任意一種,在第一方面第七種可能的實(shí)現(xiàn)方式中,所述方法還包括:所述終端獲取對(duì)所述數(shù)據(jù)庫的寫操作;檢測是否存在空閑的主連接;當(dāng)存在空閑的主連接時(shí),使用所述主連接執(zhí)行所述寫操作;當(dāng)所有的所述主連接均被占用時(shí),如果所述讀操作由所述第一應(yīng)用發(fā)起,則將所述寫操作放入第二待處理隊(duì)列中與所述第一應(yīng)用對(duì)應(yīng)的位置。

      第二方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)庫讀寫裝置,所述數(shù)據(jù)庫包含在終端中,所述數(shù)據(jù)庫具有至少一個(gè)主連接和至少兩個(gè)非主連接,所述主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的寫操作,所述非主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的讀操作,所述裝置包括:獲取單元,用于獲取對(duì)所述數(shù)據(jù)庫的讀操作;第一執(zhí)行單元,用于在所述讀操作由第一應(yīng)用發(fā)起時(shí),使用第一非主連接執(zhí)行所述讀操作;所述第一應(yīng)用為所述終端中的應(yīng)用;其中,所述第一非主連接是預(yù)先設(shè)定的僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作的非主連接;所述至少兩個(gè)非主連接包括至少一個(gè)所述第一非主連接。

      結(jié)合第二方面,在第二方面第一種可能的實(shí)現(xiàn)方式中,該裝置還包括:第二執(zhí)行單元,用于在所述讀操作由第二應(yīng)用發(fā)起時(shí),使用第二非主連接執(zhí)行所述讀操作;其中,所述第二應(yīng)用與所述第一應(yīng)用不同;所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      結(jié)合第二方面或第二方面第一種可能的實(shí)現(xiàn)方式,在第二方面第二種可能的實(shí)現(xiàn)方式中,所述第一執(zhí)行單元包括:檢測子單元,用于在所述讀操作由所述第一應(yīng)用發(fā)起時(shí),檢測是否存在空閑的所述第一非主連接;執(zhí)行子單元,用于在存在空閑的所述第一非主連接時(shí),使用空閑的所述第一非主連接執(zhí)行所述讀操作。

      結(jié)合第二方面第二種可能的實(shí)現(xiàn)方式,在第二方面第三種可能的實(shí)現(xiàn)方式中,所述檢測子單元,還用于在所有的所述第一非主連接均被占用時(shí),檢測是否存在空閑的第二非主連接;所述執(zhí)行子單元,還用于在存在空閑的所述第二非主連接時(shí),使用空閑的所述第二非主連接執(zhí)行所述讀操作;其中,所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      結(jié)合第二方面第三種可能的實(shí)現(xiàn)方式,在第二方面第四種可能的實(shí)現(xiàn)方式中,所述第一執(zhí)行單元還包括:入隊(duì)子單元,用于在所有的所述第二非主連接均被占用時(shí),將所述讀操作放入第一待處理隊(duì)列中與所述第一應(yīng)用的優(yōu)先級(jí)所對(duì)應(yīng)的位置。

      結(jié)合第二方面或第二方面第一至四種可能的實(shí)現(xiàn)方式其中任意一種,在第二方面第五種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)庫為聯(lián)系人數(shù)據(jù)庫。

      結(jié)合第二方面或第二方面第一至五種可能的實(shí)現(xiàn)方式其中任意一種,在第二方面第六種可能的實(shí)現(xiàn)方式中,所述第一應(yīng)用為聯(lián)系人應(yīng)用。

      結(jié)合第二方面或第二方面第一至六種可能的實(shí)現(xiàn)方式其中任意一種,在第二方面第七種可能的實(shí)現(xiàn)方式中,所述獲取單元,還用于獲取對(duì)所述數(shù)據(jù)庫的寫操作;所述裝置還包括第三執(zhí)行單元,所述第三執(zhí)行單元包括:主連接檢測子單元,用于檢測是否存在 空閑的主連接;寫操作執(zhí)行子單元,用于在存在空閑的主連接時(shí),使用所述主連接執(zhí)行所述寫操作;寫操作入隊(duì)子單元,用于在所有的所述主連接均被占用時(shí),如果所述讀操作由所述第一應(yīng)用發(fā)起,則將所述寫操作放入第二待處理隊(duì)列中與所述第一應(yīng)用對(duì)應(yīng)的位置。

      本發(fā)明實(shí)施例中,所述數(shù)據(jù)庫包含在終端中,所述數(shù)據(jù)庫具有至少一個(gè)主連接和至少兩個(gè)非主連接,所述主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的寫操作,所述非主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的讀操作,所述終端獲取對(duì)所述數(shù)據(jù)庫的讀操作;若所述讀操作由第一應(yīng)用發(fā)起,則使用第一非主連接執(zhí)行所述讀操作;所述第一應(yīng)用為所述終端中的應(yīng)用;其中,所述第一非主連接是預(yù)先設(shè)定的僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作的非主連接;所述至少兩個(gè)非主連接包括至少一個(gè)所述第一非主連接。采用本發(fā)明實(shí)施例所提供的方法及裝置,第一非主連接僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作,因此可以保證第一應(yīng)用發(fā)起的讀操作的執(zhí)行效率不會(huì)受到其他應(yīng)用讀操作的影響。

      附圖說明

      為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為本發(fā)明數(shù)據(jù)庫讀寫方法一個(gè)實(shí)施例的流程示意圖;

      圖2為本發(fā)明數(shù)據(jù)庫讀寫方法另一個(gè)實(shí)施例的流程示意圖;

      圖3為本發(fā)明數(shù)據(jù)庫讀寫方法的流程示意圖;

      圖4為本發(fā)明數(shù)據(jù)庫讀寫方法另一個(gè)實(shí)施例的流程示意圖;

      圖5為本發(fā)明數(shù)據(jù)庫讀寫方法另一個(gè)實(shí)施例的流程示意圖;

      圖6為本發(fā)明數(shù)據(jù)庫讀寫裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;

      圖7為本發(fā)明數(shù)據(jù)庫讀寫裝置另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;

      圖8為本發(fā)明數(shù)據(jù)庫讀寫裝置另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;

      圖9為本發(fā)明終端一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整 的描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      在此需要說明的是,本發(fā)明實(shí)施例中的數(shù)據(jù)庫可以是遵守原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)的任意一種數(shù)據(jù)庫。該數(shù)據(jù)庫包含在終端中,并且至少具有一個(gè)主連接及至少兩個(gè)非主連接,其中,所述主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的寫操作,所述非主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的讀操作。所述非主連接至少包括一個(gè)第一非主連接與一個(gè)第二非主連接,所述第一非主連接是預(yù)先設(shè)定的僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作的非主連接,所述第二非主連接除所述第一非主連接之外的其他非主連接。其中,所述數(shù)據(jù)庫可以為聯(lián)系人數(shù)據(jù)庫,所述數(shù)據(jù)庫中保存的信息為聯(lián)系人信息。

      參見圖1,為本發(fā)明數(shù)據(jù)庫讀寫方法一個(gè)實(shí)施例的流程示意圖。該實(shí)施例用于示出數(shù)據(jù)庫讀操作的執(zhí)行方法。如圖1所示,該方法包括如下步驟:

      步驟101,終端獲取對(duì)數(shù)據(jù)庫的讀操作。

      終端上的某個(gè)應(yīng)用在需要讀取聯(lián)系人數(shù)據(jù)庫中的聯(lián)系人信息時(shí),可以發(fā)起一個(gè)對(duì)所述數(shù)據(jù)庫的讀操作,終端可以獲取該讀操作。例如,聯(lián)系人應(yīng)用需要向用戶展示聯(lián)系人信息時(shí),可以發(fā)起一個(gè)對(duì)聯(lián)系人數(shù)據(jù)庫的讀操作,以便于讀取聯(lián)系人數(shù)據(jù)庫中的聯(lián)系人信息,進(jìn)而對(duì)聯(lián)系人信息進(jìn)行展示。又如,用戶數(shù)據(jù)備份應(yīng)用在將終端上的聯(lián)系人信息備份至服務(wù)器時(shí),可以發(fā)起一個(gè)對(duì)聯(lián)系人數(shù)據(jù)庫的讀操作,以便于讀取聯(lián)系人數(shù)據(jù)庫中的聯(lián)系人信息,進(jìn)而將讀取到的信息保存至服務(wù)器。

      步驟102,若所述讀操作由第一應(yīng)用發(fā)起,則使用第一非主連接執(zhí)行所述讀操作;所述第一應(yīng)用為所述終端中的應(yīng)用。

      在獲取到所述讀操作之后,終端判斷該讀操作是否由第一應(yīng)用發(fā)起。其中,讀操作的發(fā)起者可以通過讀操作中攜帶的信息來確定,或者也可以通過讀操作的來源來確定。

      如果所述讀操作由第一應(yīng)用發(fā)起,則終端使用第一非主連接執(zhí)行所述讀操作;若所述讀操作由第二應(yīng)用發(fā)起,則終端使用第二非主連接執(zhí)行所述讀操作。其中,所述第二應(yīng)用與所述第一應(yīng)用為不同應(yīng)用,所述第一應(yīng)用為對(duì)讀操作執(zhí)行效率要求較高的應(yīng)用,例如聯(lián)系人應(yīng)用等;所述第二應(yīng)用為對(duì)讀操作執(zhí)行效率要求不高的應(yīng)用,例如數(shù)據(jù)備份應(yīng)用等。采用此執(zhí)行方式,第一非主連接僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作,因此可以保證第一應(yīng)用發(fā)起的讀操作的執(zhí)行效率不會(huì)受到其他應(yīng)用讀操作的影響。

      為進(jìn)一步提升第一應(yīng)用所發(fā)起的讀操作的執(zhí)行效率,終端在使用第一非主連接執(zhí)行所述讀操作時(shí),可以首先檢測是否存在空閑的所述第一非主連接;當(dāng)存在空閑的所述第一非主連接時(shí),使用空閑的所述第一非主連接執(zhí)行所述讀操作;當(dāng)所有的所述第一非主連接均被占用時(shí),則可以檢測是否存在空閑的第二非主連接;當(dāng)存在空閑的所述第二非主連接時(shí),使用空閑的所述第二非主連接執(zhí)行所述讀操作。通過使用第二非主連接執(zhí)行第一應(yīng)用所發(fā)起的讀操作,可以使更多的非主連接用于執(zhí)行第一應(yīng)用所發(fā)起讀操作,從而提升第一應(yīng)用所發(fā)起讀操作的執(zhí)行效率。

      在實(shí)際使用中,為減少檢測步驟,進(jìn)一步提升第一應(yīng)用所發(fā)起讀操作的執(zhí)行效率,終端在確定所述讀操作由第一應(yīng)用發(fā)起后,可以同時(shí)檢測各個(gè)非主連接是否空閑,如果存在空閑的第一非主連接,使用空閑的第一非主連接執(zhí)行由第一應(yīng)用發(fā)起的讀操作;如果第一非主連接均被占用但存在空閑的第二非主連接,則可以使用空閑的第二非主連接執(zhí)行由第一應(yīng)用發(fā)起的讀操作。

      由于非主連接的數(shù)量有限,而同一時(shí)間段內(nèi)不同的應(yīng)用可能會(huì)并發(fā)發(fā)起超過非主連接數(shù)量的讀操作,因此在實(shí)際使用中仍然可能存在所有非主連接均被占用的情況。在非主連接被占用的情況下,需要讀操作放入第一待處理隊(duì)列;然后在出現(xiàn)空閑的非主連接時(shí),使用空閑的非主連接逐一執(zhí)行第一待處理隊(duì)列中的讀操作。

      根據(jù)讀操作的發(fā)起者不同,終端將讀操作放入待處理隊(duì)列的具體方式也不相同。在所述讀操作由第二應(yīng)用發(fā)起時(shí),終端可以在第二連接均被占用時(shí),直接將讀操作放入第一待處理隊(duì)列;而在所述讀操作由第一應(yīng)用發(fā)起時(shí),終端可以在第一非主連接及第二非主連接均被占用時(shí),再將讀操作放入第一待處理隊(duì)列。

      進(jìn)一步,在將讀操作放入第一待處理隊(duì)列時(shí),可以根據(jù)讀操作的發(fā)起者不同,將讀操作放入第一待處理隊(duì)列中的不同位置。為提高由第一應(yīng)用發(fā)起的讀操作的執(zhí)行效率,可以將由第一應(yīng)用發(fā)起的讀操作放入第一待處理隊(duì)列中與所述第一應(yīng)用的優(yōu)先級(jí)所對(duì)應(yīng)的位置,而將第二應(yīng)用發(fā)起的讀操作放入第一待處理隊(duì)列的隊(duì)尾。

      例如,在所述讀操作由所述第二應(yīng)用發(fā)起時(shí),可以直接將該讀操作放入第一待處理隊(duì)列的隊(duì)尾;而在所述讀操作由所述第一應(yīng)用發(fā)起時(shí),可以將該讀操作放在第一待處理隊(duì)列中所有第二應(yīng)用發(fā)起的讀操作之前的位置。

      在本實(shí)施例中,所述終端獲取對(duì)所述數(shù)據(jù)庫的讀操作;若所述讀操作由第一應(yīng)用發(fā)起,則使用第一非主連接執(zhí)行所述讀操作;所述第一應(yīng)用為所述終端中的應(yīng)用。采用本實(shí)施例所述的方法,第一非主連接僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作,因此可以保證第一應(yīng)用發(fā)起的讀操作的執(zhí)行效率不會(huì)受到其他應(yīng)用讀操作的影響,從而可以保證第 一應(yīng)用所發(fā)起讀操作的執(zhí)行效率。

      由于在實(shí)際使用中,應(yīng)用除需要讀取聯(lián)系人信息之外,還可能需要改寫聯(lián)系人信息,因此終端除對(duì)應(yīng)用發(fā)起的讀操作進(jìn)行調(diào)度執(zhí)行外,實(shí)現(xiàn)聯(lián)系人信息的讀取之外,還需要對(duì)應(yīng)用發(fā)起的寫操作進(jìn)行調(diào)度執(zhí)行,實(shí)現(xiàn)聯(lián)系人信息的改寫。

      參見圖2,為本發(fā)明數(shù)據(jù)庫讀寫方法另一個(gè)實(shí)施例的流程示意圖。該實(shí)施例用于示出數(shù)據(jù)庫寫操作的執(zhí)行方法。終端可以獨(dú)立采用本實(shí)施例中示出的方法對(duì)寫操作進(jìn)行調(diào)度執(zhí)行,也可以在前述圖1所示實(shí)施例中對(duì)讀操作進(jìn)行調(diào)度執(zhí)行的基礎(chǔ)上,對(duì)寫操作進(jìn)行調(diào)度執(zhí)行。如圖2所示,該方法包括如下步驟:

      步驟201,所述終端獲取對(duì)所述數(shù)據(jù)庫的寫操作。

      終端上的某個(gè)應(yīng)用在需要改寫聯(lián)系人數(shù)據(jù)庫中的聯(lián)系人信息時(shí),可以發(fā)起一個(gè)對(duì)所述數(shù)據(jù)庫的寫操作,終端可以獲取該寫操作。例如,聯(lián)系人應(yīng)用需要根據(jù)用戶輸入的信息修改聯(lián)系人信息時(shí),可以發(fā)起一個(gè)對(duì)聯(lián)系人數(shù)據(jù)庫寫讀操作,完成聯(lián)系人信息的修改。

      步驟202,所述終端檢測是否存在空閑的主連接。

      由于主連接用于執(zhí)行寫操作,因此在獲取到所述讀操作之后,終端可以檢測否存空閑的主連接。

      步驟203,當(dāng)存在空閑的主連接時(shí),所述終端使用所述主連接執(zhí)行所述寫操作。

      步驟204,當(dāng)所有的所述主連接均被占用時(shí),如果所述讀操作由所述第一應(yīng)用發(fā)起,則將所述寫操作放入第二待處理隊(duì)列中與所述第一應(yīng)用對(duì)應(yīng)的位置。

      由于主連接的數(shù)量非常限,通常情況下數(shù)據(jù)庫只有一條主連接,而同一時(shí)間段內(nèi)不同的應(yīng)用并發(fā)發(fā)起多個(gè)寫操作。因此可出現(xiàn)所述的主連接均被占用的情況。

      如果所有的主連接均別被占用,終端可以檢測所述寫操作的發(fā)起者;根據(jù)寫操作發(fā)起者的不同,將寫操作放入與寫操作發(fā)起者相對(duì)應(yīng)的位置,以保證第一應(yīng)用所發(fā)起寫操作的執(zhí)行效率。具體來說,當(dāng)所有的所述主連接均被占用時(shí),如果所述寫操作由所述第一應(yīng)用發(fā)起,則將所述寫操作放入第二待處理隊(duì)列中與所述第一應(yīng)用對(duì)應(yīng)的位置;如果所述寫操作由所述第二應(yīng)用發(fā)起,則將所述寫操作放入第二待處理隊(duì)列中與所述第二應(yīng)用對(duì)應(yīng)的位置。其中,寫操作的發(fā)起者可以通過寫操作的中攜帶的信息確定,或者也可以通過寫操作的來源來確定。將第一應(yīng)用發(fā)起的寫操作放入第二待處理隊(duì)列中與所述第一應(yīng)用對(duì)應(yīng)的位置,可以保證第一應(yīng)用的寫操作優(yōu)先與非第一應(yīng)用的寫操作執(zhí)行,提高 制定應(yīng)用所述發(fā)出寫操作的執(zhí)行效率。

      例如,在所述寫操作由所述第二應(yīng)用發(fā)起時(shí),可以直接將該寫操作放入第二待處理隊(duì)列的隊(duì)尾;而在所述寫操作由所述第一應(yīng)用發(fā)起時(shí),可以將該寫操作放在第二待處理隊(duì)列中所有第二應(yīng)用發(fā)起的寫操作之前的位置。

      在本實(shí)施例中,所述終端獲取對(duì)所述數(shù)據(jù)庫的寫操作;檢測是否存在空閑的主連接;當(dāng)存在空閑的主連接時(shí),使用所述主連接執(zhí)行所述寫操作;當(dāng)所有的所述主連接均被占用時(shí),如果所述讀操作由所述第一應(yīng)用發(fā)起,則將所述寫操作放入第二待處理隊(duì)列中與所述第一應(yīng)用對(duì)應(yīng)的位置。由于主連接僅僅用執(zhí)行寫操作,因此避免了主連接被讀操作所占用,從而可以提高寫操作的執(zhí)行效率。

      在此需要說明的是,本發(fā)明不對(duì)步驟101至步驟102及步驟201至步驟204之間的執(zhí)行順序進(jìn)行限定。在實(shí)際使用中可以先執(zhí)行步驟101至步驟102,然后再執(zhí)行步驟201至步驟204;或者,也可以先執(zhí)行步驟201至步驟204,然后再執(zhí)行步驟101至步驟102;或者,也可以并行執(zhí)行步驟101至步驟102以及步驟201至步驟204;或者,也可以分別獨(dú)立執(zhí)行步驟101至步驟102或者步驟201至步驟204。

      參見圖3為一種本發(fā)明數(shù)據(jù)庫讀寫方法的流程示意圖。其中,聯(lián)系人存儲(chǔ)提供者(Contacts Provider)、數(shù)據(jù)庫接池(Connection Pool)及聯(lián)系人數(shù)據(jù)庫(Contacts Database)可以設(shè)置在同一個(gè)終端上,該終端上還可以設(shè)置有至少一個(gè)第一應(yīng)用與至少一個(gè)第二應(yīng)用。其中,聯(lián)系人存儲(chǔ)提供者、數(shù)據(jù)庫接池及聯(lián)系人數(shù)據(jù)庫可以由終端通過終端上的應(yīng)用實(shí)現(xiàn),或者也可以由組成終端的硬件和/或軟件實(shí)現(xiàn)。

      當(dāng)終端上的第一應(yīng)用或第二應(yīng)用在需要讀取聯(lián)系人數(shù)據(jù)庫中的聯(lián)系人信息時(shí),可以首先發(fā)起一個(gè)讀操作,然后將讀操作發(fā)送給聯(lián)系人存儲(chǔ)提供者;聯(lián)系人存儲(chǔ)提供者在接收到讀操作后,再將讀操作發(fā)送給數(shù)據(jù)庫接池;數(shù)據(jù)庫連接池在接收到讀操作后,首先確定讀操作的發(fā)起者,如果讀操作的發(fā)起者為第一應(yīng)用,則使用第一非主連接執(zhí)行所述讀操作,如果讀操作的發(fā)起者為第二應(yīng)用,則使用第二非主連接執(zhí)行所述讀操作。

      當(dāng)終端上的第一應(yīng)用或第二應(yīng)用在需要改寫聯(lián)系人數(shù)據(jù)庫中的聯(lián)系人信息時(shí),可以首先發(fā)起一個(gè)寫操作,然后將寫操作發(fā)送給聯(lián)系人存儲(chǔ)提供者;聯(lián)系人存儲(chǔ)提供者在接收到寫操作后,再將寫操作發(fā)送給數(shù)據(jù)庫接池;數(shù)據(jù)庫連接池在接收到寫操作后,使用主連接執(zhí)行所述讀操作。

      下面結(jié)合圖4對(duì)本發(fā)明數(shù)據(jù)庫讀寫方法做進(jìn)一步說明。

      參見圖4,為本發(fā)明數(shù)據(jù)庫讀寫方法另一個(gè)實(shí)施例的流程示意圖。下面結(jié)合圖4對(duì) 采用本發(fā)明數(shù)據(jù)庫讀寫方法執(zhí)行讀操作的過程做進(jìn)一步說明。本發(fā)明實(shí)施例中所述的方法可以由終端中的數(shù)據(jù)庫連接池(ConnectionPool)完成。

      步驟401,數(shù)據(jù)庫連接池獲取應(yīng)用發(fā)起的讀操作。

      步驟402,數(shù)據(jù)庫連接池判斷所述讀操作是否由第一應(yīng)用發(fā)起。

      步驟403,如果所述第一應(yīng)用由所述第一應(yīng)用發(fā)起,數(shù)據(jù)庫連接池檢測第一非主連接是否空閑。

      步驟404,當(dāng)?shù)谝环侵鬟B接空閑時(shí),數(shù)據(jù)庫連接池使用第一非主連接執(zhí)行所述讀操作。

      在所述讀操作由第二應(yīng)用發(fā)起時(shí);或者,在所述讀操作由第一應(yīng)用發(fā)起,但是第一非主連接被占用時(shí),在步驟402或步驟404之后,所述方法還可以包括:

      步驟405,數(shù)據(jù)庫連接池檢測第二非主連接是否空閑。

      步驟406,當(dāng)?shù)诙侵鬟B接空閑時(shí),數(shù)據(jù)庫連接池使用第二非主連接執(zhí)行所述讀操作。

      如果所述第二非主連接也被占用,那么在步驟405之后,所述方法還可以包括:

      步驟407,數(shù)據(jù)庫連接池將所述讀操作放入第一待處理隊(duì)列。

      在將讀操作放入第一待處理隊(duì)列時(shí),如果讀操作的發(fā)起者為第一應(yīng)用,那么就將讀操作放入第一待處理隊(duì)列中與第一應(yīng)用相對(duì)應(yīng)的位置;如果讀操作的發(fā)起者為第二應(yīng)用等其他應(yīng)用,那么可以將讀操作放入第一待處理隊(duì)列的隊(duì)尾。

      在將所述讀操作放入第一待處理隊(duì)列后,還需要將讀操作取出執(zhí)行,因此在步驟407之后還可以包括步驟408至409,或者也可以包括步驟410至411。

      步驟408,數(shù)據(jù)庫連接池檢測第二非主連接是否被釋放。

      數(shù)據(jù)庫連接池可以通過連接釋放通知判定第二非主連接是否被釋放。其中,所述連接釋放通知可以由終端上的聯(lián)系人數(shù)據(jù)庫生成,用于在某個(gè)主連接或某個(gè)非主連接被釋放后,通知數(shù)據(jù)庫連接池該主連接或該非主連接被釋放。數(shù)據(jù)庫連接池可以跟是否接受到連接釋放通知判斷是否有連接被釋放,并根據(jù)連接釋放通知的內(nèi)容判斷被釋放的連接是否為第二非主連接。

      步驟409,在第二非主連接被釋放后,數(shù)據(jù)庫連接池取出位于所述第一待處理隊(duì)列的隊(duì)列頭的讀操作,并返回步驟406。

      當(dāng)數(shù)據(jù)庫連接池通過連接釋放通知確定某第二非主連接被釋放后,可以從所述數(shù)據(jù)庫連接池從所述隊(duì)列頭取出讀操作,并返回步驟406,將讀操作交由空閑的第二非主連接。

      由于第二非主連接可以用于執(zhí)行任意應(yīng)用所發(fā)起的讀操作,因此無論處于第一待處理隊(duì)列隊(duì)的列頭的讀操作由哪一個(gè)應(yīng)用發(fā)起,都可以在第二非主連接釋放后交由第二非主連接執(zhí)行。

      步驟410,數(shù)據(jù)庫連接池檢測第一非主連接是否被釋放。

      數(shù)據(jù)庫連接池可以根據(jù)連接釋放通知的內(nèi)容判斷被釋放的連接是否為第一非主連接。

      步驟411,在第一非主連接被釋放后,從所述第一待處理隊(duì)列中取出發(fā)起者為所述第一應(yīng)用的讀操作,并且返回步驟404。

      當(dāng)通過連接釋放通知確定某第一非主連接被釋放后,如果第一待處理隊(duì)列中存在由所述第一應(yīng)用發(fā)起的讀操作,那么數(shù)據(jù)庫連接池可以取出由第一應(yīng)用發(fā)起的讀操作,并返回步驟404,將讀操作交由空閑的第一非主連接執(zhí)行。

      采用本實(shí)施例所提供的方法,第一非主連接僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作,因此可以保證第一應(yīng)用發(fā)起的讀操作的執(zhí)行效率不會(huì)受到其他應(yīng)用讀操作的影響。

      參見圖5,為本發(fā)明數(shù)據(jù)庫讀寫方法另一個(gè)實(shí)施例的流程示意圖。下面結(jié)合圖5對(duì)采用本發(fā)明數(shù)據(jù)庫讀寫方法執(zhí)行寫操作的過程做進(jìn)一步說明。本發(fā)明實(shí)施例中所述的方法可以由數(shù)據(jù)庫連接池完成。

      步驟501,數(shù)據(jù)庫連接池獲取應(yīng)用發(fā)起的寫操作。

      步驟502,數(shù)據(jù)庫連接池檢測主連接是否空閑。

      步驟503,若主連接空閑,數(shù)據(jù)庫連接池使用所述主連接執(zhí)行所述寫操作。

      步驟504,若主連接均被占用,數(shù)據(jù)庫連接池檢測所述寫操作是否由第一應(yīng)用發(fā)起。

      步驟505,若所述寫操作由第一應(yīng)用發(fā)起,則數(shù)據(jù)庫連接池將所述寫操作放入第二待處理隊(duì)列中與所述第一應(yīng)用對(duì)應(yīng)的位置。

      步驟506,若所述寫操作不由第一應(yīng)用發(fā)起,則數(shù)據(jù)庫連接池將所述寫操作放入第二待處理隊(duì)列的隊(duì)尾。

      根據(jù)寫操作是否由第一應(yīng)用發(fā)起不同,終端可以選擇執(zhí)行步驟505或步驟506。在步驟505或步驟506之后還可以包括:

      步驟507,數(shù)據(jù)庫連接池檢測所述主連接是否被釋放。

      在接收到連接釋放通知后,數(shù)據(jù)庫連接池可以根據(jù)連接釋放通知的內(nèi)容判斷被釋放的連接是否為主連接,從而確定主連接是否被釋放。

      步驟508,當(dāng)所述主連接被釋放后,取出位于第二待處理隊(duì)列的隊(duì)列頭的讀操作,并返回步驟503。

      采用本實(shí)施例所提供的方法,主連接僅僅用執(zhí)行寫操作,因此避免了主連接被讀操作所占用,從而可以提高寫操作的執(zhí)行效率。

      與本發(fā)明數(shù)據(jù)庫讀寫方法相對(duì)應(yīng),本發(fā)明還提供了數(shù)據(jù)庫讀寫裝置。

      參見圖6,為本發(fā)明數(shù)據(jù)庫讀寫裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。該數(shù)據(jù)庫讀寫裝置可以用于執(zhí)行上述各實(shí)施中的數(shù)據(jù)庫讀寫方法。

      如圖6所示,該裝置包括:獲取單元601及第一執(zhí)行單元602。

      其中,獲取單元601,用于獲取對(duì)所述數(shù)據(jù)庫的讀操作;第一執(zhí)行單元602,用于在所述讀操作由第一應(yīng)用發(fā)起時(shí),使用第一非主連接執(zhí)行所述讀操作;所述第一應(yīng)用為所述終端中的應(yīng)用;其中,所述第一非主連接是預(yù)先設(shè)定的僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作的非主連接;所述至少兩個(gè)非主連接包括至少一個(gè)所述第一非主連接。所述數(shù)據(jù)庫為聯(lián)系人數(shù)據(jù)庫;所述第一應(yīng)用為聯(lián)系人應(yīng)用。

      可選的,如圖7所示,所述裝置還可以包括:第二執(zhí)行單元603,用于在所述讀操作由第二應(yīng)用發(fā)起時(shí),使用第二非主連接執(zhí)行所述讀操作;其中,所述第二應(yīng)用與所述第一應(yīng)用不同;所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      可選的,所述第一執(zhí)行單元602包括:檢測子單元,用于在所述讀操作由所述第一應(yīng)用發(fā)起時(shí),檢測是否存在空閑的所述第一非主連接;執(zhí)行子單元,用于在存在空閑的所述第一非主連接時(shí),使用空閑的所述第一非主連接執(zhí)行所述讀操作。其中,所述檢測子單元,還用于在所有的所述第一非主連接均被占用時(shí),檢測是否存在空閑的第二非主連接;所述執(zhí)行子單元,還用于在存在空閑的所述第二非主連接時(shí),使用空閑的所述第 二非主連接執(zhí)行所述讀操作;其中,所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      可選的,所述第一執(zhí)行單元602還可以包括入隊(duì)子單元,用于在所有的所述第二非主連接均被占用時(shí),將所述讀操作放入第一待處理隊(duì)列中與所述第一應(yīng)用的優(yōu)先級(jí)所對(duì)應(yīng)的位置。

      采用本實(shí)施例中的裝置執(zhí)行讀操作,第一非主連接僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作,因此可以保證第一應(yīng)用發(fā)起的讀操作的執(zhí)行效率不會(huì)受到其他應(yīng)用讀操作的影響。

      在另一個(gè)實(shí)施例中,如圖8所示,除獲取單元601、第一執(zhí)行單元602及第二執(zhí)行單元603之外,所述裝置還可以包括:第三執(zhí)行單元604。

      其中,所述獲取單元601,還用于獲取對(duì)所述數(shù)據(jù)庫的寫操作;所述第三執(zhí)行單元604包括:主連接檢測子單元,用于檢測是否存在空閑的主連接;寫操作執(zhí)行子單元,用于在存在空閑的主連接時(shí),使用所述主連接執(zhí)行所述寫操作;寫操作入隊(duì)子單元,用于在所有的所述主連接均被占用時(shí),如果所述讀操作由所述第一應(yīng)用發(fā)起,則將所述寫操作放入第二待處理隊(duì)列中與所述第一應(yīng)用對(duì)應(yīng)的位置。采用此實(shí)施例,由于主連接僅僅用執(zhí)行寫操作,因此可以避免主連接被讀操作所占用,從而可以提高寫操作的執(zhí)行效率。

      采用在本實(shí)施例中的裝置執(zhí)行寫操作時(shí),主連接僅僅用執(zhí)行寫操作,因此可以避免主連接被讀操作所占用,從而可以提高寫操作的執(zhí)行效率。

      在需要說明的是,在另一個(gè)實(shí)施例中,所述裝置可以僅包括獲取單元601與至少第一執(zhí)行單元602、第二執(zhí)行單元603及第三執(zhí)行單元604其中之一。例如,所述裝置可以只包括獲取單元601、第一執(zhí)行單元602及第二執(zhí)行單元603;或者,所述裝置也可以只包括獲取單元601及第三執(zhí)行單元604。本發(fā)明對(duì)此并不進(jìn)行限制。

      參見圖9,為本發(fā)明終端一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。所述終端可以用來執(zhí)行前述各實(shí)施例中所示的數(shù)據(jù)庫讀寫方法。

      如圖9所示,所述終端可以包括:處理器901,存儲(chǔ)器902。可選的,所述終端還可以包括通信單元903,輸入輸出單元904等。這些組件通過一條或多條總線進(jìn)行通信。本領(lǐng)域技術(shù)人員可以理解,圖中示出的服務(wù)器的結(jié)構(gòu)并不構(gòu)成對(duì)本發(fā)明的限定,它既可以是總線形結(jié)構(gòu),也可以是星型結(jié)構(gòu),還可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。

      其中,處理器901為電子設(shè)備的控制中心,利用各種接口和線路連接整個(gè)電子設(shè)備的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器902內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器902內(nèi)的數(shù)據(jù),以執(zhí)行電子設(shè)備的各種功能和/或處理數(shù)據(jù)。所述處理器901可以由集成電路(Integrated Circuit,簡稱IC)組成,例如可以由單顆封裝的IC所組成,也可以由連接多顆相同功能或不同功能的封裝IC而組成。舉例來說,處理器901可以僅包括中央處理器(Central Processing Unit,簡稱CPU),也可以是GPU、數(shù)字信號(hào)處理器(Digital Signal Processor,簡稱DSP)、及通信單元903中的控制芯片(例如基帶芯片)的組合。在本發(fā)明實(shí)施方式中,CPU可以是單運(yùn)算核心,也可以包括多運(yùn)算核心。

      存儲(chǔ)器902可用于存儲(chǔ)軟件程序以及模塊,處理器901通過運(yùn)行存儲(chǔ)在存儲(chǔ)器902的軟件程序以及模塊,從而執(zhí)行終端的各種功能應(yīng)用以及實(shí)現(xiàn)數(shù)據(jù)處理。存儲(chǔ)器902主要包括程序存儲(chǔ)區(qū)和數(shù)據(jù)存儲(chǔ)區(qū),其中,程序存儲(chǔ)區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用,比如聲音播放程序、圖像播放程序等等,以及本發(fā)明實(shí)施例中所說的第一應(yīng)用及第二應(yīng)用;數(shù)據(jù)存儲(chǔ)區(qū)可存儲(chǔ)根據(jù)終端的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等,在本發(fā)明實(shí)施例中,所述數(shù)據(jù)存儲(chǔ)區(qū)域用于存儲(chǔ)所述數(shù)據(jù)庫。存儲(chǔ)器902可以包括易失性存儲(chǔ)器902,例如非揮發(fā)性動(dòng)態(tài)隨機(jī)存取內(nèi)存(NONVOLATILE RANDOM ACCESS MEMORY,簡稱NVRAM)、相變化隨機(jī)存取內(nèi)存(PHASE CHANGE RAM,簡稱PRAM)、磁阻式隨機(jī)存取內(nèi)存(MAGETORESISTIVE RAM,簡稱MRAM)等,還可以包括非易失性存儲(chǔ)器902,例如至少一個(gè)磁盤存儲(chǔ)器902件、電子可擦除可編程只讀存儲(chǔ)器902(ELECTRICALLY ERASABLE PROGRAMMABLE READ-ONLY MEMORY,簡稱EEPROM)、閃存器件,例如反或閃存(NOR FLASH MEMORY)或是反及閃存(NAND FLASH MEMORY)。非易失存儲(chǔ)器902儲(chǔ)存處理器901所執(zhí)行的操作系統(tǒng)及應(yīng)用程序。所述處理器901從所述非易失存儲(chǔ)器902加載運(yùn)行程序與數(shù)據(jù)到內(nèi)存并將數(shù)字內(nèi)容儲(chǔ)存于大量儲(chǔ)存裝置中。所述操作系統(tǒng)包括用于控制和管理常規(guī)系統(tǒng)任務(wù),例如內(nèi)存管理、存儲(chǔ)設(shè)備控制、電源管理等,以及有助于各種軟硬件之間通信的各種組件和/或驅(qū)動(dòng)器。在本發(fā)明實(shí)施方式中,所述操作系統(tǒng)可以是GOOGLE公司的ANDROID系統(tǒng)、APPLE公司開發(fā)的IOS系統(tǒng)或MICROSOFT公司開發(fā)的WINDOWS操作系統(tǒng)等,或者是VXWORKS這類的嵌入式操作系統(tǒng)。

      所述通信單元903用于建立通信信道,使終端通過所述通信信道以連接至遠(yuǎn)程服務(wù)器,可行遠(yuǎn)程服務(wù)器發(fā)送數(shù)據(jù)或從所述遠(yuǎn)程服務(wù)器下媒體數(shù)據(jù)。所述通信單元903可以包括無線局域網(wǎng)(WIRELESS LOCAL AREA NETWORK,簡稱WIRELESS LAN)模塊、藍(lán)牙模塊、基帶(BASE BAND)模塊等通信模塊,以及所述通信模塊對(duì)應(yīng)的射頻(RADIO FREQUENCY,簡稱RF)電路,用于進(jìn)行無線局域網(wǎng)絡(luò)通信、藍(lán)牙通信、紅外線通信及/或蜂窩式通信系統(tǒng)通信,例如寬帶碼分多重接入(WIDEBAND CODE DIVISION MULTIPLE ACCESS,簡稱W-CDMA)及/或高速下行封包存取(HIGH SPEED DOWNLINK PACKET ACCESS,簡稱HSDPA)。 所述通信模塊用于控制終端中的各組件的通信,并且可以支持直接內(nèi)存存取(DIRECT MEMORY ACCESS)。

      輸入輸出單元904用于輸出信息和/或信息輸入到終端中,從而實(shí)現(xiàn)用戶與終端的交互。所述輸入輸出單元904可以包括輸入子單元及輸出子單元,其中,所述輸出子單元可以包括觸控面板,也可以包括其他人機(jī)交互界面,例如實(shí)體輸入鍵、麥克風(fēng)等。所述輸出子單元包括但不限于影像輸出子單元和聲音輸出子單元。影像輸出子單元用于輸出文字、圖片和/或視頻。所述影像輸出子單元可包括顯示面板,例如采用LCD(Liquid Crystal Display,液晶顯示器)、OLED(Organic Light-Emitting Diode,有機(jī)發(fā)光二極管)、場發(fā)射顯示器(field emission display,簡稱FED)等形式來配置的顯示面板。或者所述影像輸出子單元可以包括反射式顯示器,例如電泳式(electrophoretic)顯示器,或利用光干涉調(diào)變技術(shù)(Interferometric Modulation of Light)的顯示器。雖然輸入子單元與輸出子單元是作為兩個(gè)獨(dú)立的部件來實(shí)現(xiàn)終端的輸入和輸出功能,但是在某些實(shí)施例中,可以將觸控面板與顯示面板集成一體而實(shí)現(xiàn)終端的輸入和輸出功能。例如,所述影像輸出子單元可以顯示各種圖形化用戶接口(Graphical User Interface,簡稱GUI)以作為虛擬控制組件,包括但不限于窗口、卷動(dòng)軸、圖標(biāo)及剪貼簿,以供用戶通過觸控方式進(jìn)行操作。

      在本發(fā)明實(shí)施中,所述存儲(chǔ)器902用于存儲(chǔ)數(shù)據(jù)庫及應(yīng)用,其中,所述數(shù)據(jù)庫可以為聯(lián)系人數(shù)據(jù)庫,所述應(yīng)用包括第一應(yīng)用及第二應(yīng)用,所述數(shù)據(jù)庫具有至少一個(gè)主連接和至少兩個(gè)非主連接,所述主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的寫操作,所述非主連接用于執(zhí)行對(duì)所述數(shù)據(jù)庫的讀操作,所述第一應(yīng)用為聯(lián)系人應(yīng)用。所述輸入輸出單元,可以用于向終端中輸入聯(lián)系人信息,或者也可以用于向用戶展示聯(lián)系人信息。

      所述處理器901,用于獲取對(duì)所述數(shù)據(jù)庫的讀操作;在所述讀操作由第一應(yīng)用發(fā)起時(shí),使用第一非主連接執(zhí)行所述讀操作;所述第一應(yīng)用為所述終端中的應(yīng)用;其中,所述第一非主連接是預(yù)先設(shè)定的僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作的非主連接;所述至少兩個(gè)非主連接包括至少一個(gè)所述第一非主連接。

      所述處理器901,還用于在所述讀操作由第二應(yīng)用發(fā)起時(shí),使用第二非主連接執(zhí)行所述讀操作;其中,所述第二應(yīng)用與所述第一應(yīng)用不同;所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      所述處理器901,還用于在所述讀操作由所述第一應(yīng)用發(fā)起時(shí),檢測是否存在空閑的所述第一非主連接;當(dāng)存在空閑的所述第一非主連接時(shí),使用空閑的所述第一非主連接執(zhí)行所述讀操作。

      所述處理器901,還用于在所有的所述第一非主連接均被占用時(shí),檢測是否存在空閑的第二非主連接;當(dāng)存在空閑的所述第二非主連接時(shí),使用空閑的所述第二非主連接執(zhí)行所述讀操作;其中,所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      所述處理器901,還用于在所有的所述第一非主連接均被占用時(shí),檢測是否存在空閑的第二非主連接;當(dāng)存在空閑的所述第二非主連接時(shí),使用空閑的所述第二非主連接執(zhí)行所述讀操作;其中,所述第二非主連接是除所述第一非主連接之外的其它非主連接。

      在另一個(gè)實(shí)施例中,所述處理器901可以用于獲取對(duì)所述數(shù)據(jù)庫的寫操作;檢測是否存在空閑的主連接;在存在空閑的主連接時(shí),使用所述主連接執(zhí)行所述寫操作;在所有的所述主連接均被占用時(shí),如果所述讀操作由所述第一應(yīng)用發(fā)起,則將所述寫操作放入第二待處理隊(duì)列中與所述第一應(yīng)用對(duì)應(yīng)的位置。

      本實(shí)施中的終端在執(zhí)行應(yīng)用發(fā)起的讀操作時(shí),第一非主連接僅用于執(zhí)行所述第一應(yīng)用發(fā)起的讀操作,因此可以保證第一應(yīng)用發(fā)起的讀操作的執(zhí)行效率不會(huì)受到其他應(yīng)用讀操作的影響。

      本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例中的技術(shù)可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例中的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)完成本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。

      本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置及終端實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。

      以上所述的本發(fā)明實(shí)施方式,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1