最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

在多進(jìn)程之間共享股票數(shù)據(jù)的方法及裝置的制作方法

文檔序號(hào):6438559閱讀:421來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):在多進(jìn)程之間共享股票數(shù)據(jù)的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理,更具體地說(shuō),涉及一種在多進(jìn)程之間共享股票數(shù)據(jù)的方法及裝置。
背景技術(shù)
證券市場(chǎng)的股票數(shù)據(jù)是一種數(shù)據(jù)量龐大,且不斷實(shí)時(shí)更新的數(shù)據(jù)。在股票操作電子化的今天,需要將龐大的股票數(shù)據(jù)近于實(shí)時(shí)地、不斷地由證券公司的數(shù)據(jù)處理中心(通常是服務(wù)器)傳輸?shù)礁饔脩?hù)端。這些用戶(hù)端可能在證券公司內(nèi)部,也可能通過(guò)網(wǎng)絡(luò)與證券公司的服務(wù)器連接。因此,其傳輸速度非常關(guān)鍵。隨著服務(wù)器機(jī)器性能的不斷增長(zhǎng),現(xiàn)在單臺(tái)服務(wù)器的CPU內(nèi)核都超過(guò)一個(gè),4核,8核,16核等等。一臺(tái)服務(wù)器勢(shì)必支持多個(gè)服務(wù)進(jìn)程(這些服務(wù)進(jìn)程可能是用戶(hù)端提出的數(shù)據(jù)請(qǐng)求),而如何在單臺(tái)服務(wù)器中搬遷大量實(shí)時(shí)數(shù)據(jù),提高單臺(tái)服務(wù)器的容量,降低CPU負(fù)載,是目前股票服務(wù)器追求的目標(biāo)。目前市面上的股票服務(wù)器普遍采用Window平臺(tái)下開(kāi)發(fā)的服務(wù)器,單臺(tái)服務(wù)器的多個(gè)服務(wù)進(jìn)程通過(guò)socket將數(shù)據(jù)打包傳輸達(dá)到數(shù)據(jù)共享目的。在上述現(xiàn)有技術(shù)中,增加一個(gè)服務(wù)進(jìn)程時(shí)需要增加一個(gè)數(shù)據(jù)拷貝,占用大量CPU時(shí)間進(jìn)行搬遷;原始數(shù)據(jù)的存儲(chǔ)不能達(dá)到快速數(shù)據(jù)分發(fā)的目的;耗費(fèi)的CPU資源和內(nèi)存資源勢(shì)必影響到單臺(tái)服務(wù)器的負(fù)載量,增加企業(yè)的運(yùn)營(yíng)成本。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述共享數(shù)據(jù)占用時(shí)間長(zhǎng)、耗費(fèi)大量的CPU資源的缺陷,提供一種占用時(shí)間較短,耗費(fèi)CPU資源較小的在多進(jìn)程之間共享股票數(shù)據(jù)的方法及裝置。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是構(gòu)造一種在多進(jìn)程之間共享股票數(shù)據(jù)的方法,包括如下步驟
A)在共享存儲(chǔ)區(qū)域建立每個(gè)股票的檢索列表,并分別將所述檢索列表中每一項(xiàng)與所述共享存儲(chǔ)區(qū)域中的一段存儲(chǔ)區(qū)域?qū)?yīng);
B)將接收到的股票數(shù)據(jù)經(jīng)過(guò)處理后分別存入其檢索列表項(xiàng)對(duì)應(yīng)的存儲(chǔ)區(qū)域;
C)通過(guò)消息管道通知需要所述已更新數(shù)據(jù)的進(jìn)程;
D)各進(jìn)程在所述共享存儲(chǔ)區(qū)域中取得股票數(shù)據(jù)。在本發(fā)明所述的在多進(jìn)程之間共享股票數(shù)據(jù)的方法中,所述步驟B)中進(jìn)一步包括如下步驟
Bi)取得一個(gè)股票數(shù)據(jù);
B2)將當(dāng)前取得的股票數(shù)據(jù)與同一數(shù)據(jù)的先前取得的值比較,得到其增量值;
B3)存儲(chǔ)所述得到的增量值到所述共享存儲(chǔ)區(qū)域中與該股票數(shù)據(jù)對(duì)應(yīng)的指定存儲(chǔ)區(qū)域中。在本發(fā)明所述的在多進(jìn)程之間共享股票數(shù)據(jù)的方法中,所述步驟A)中進(jìn)一步包括如下步驟Al)形成股票檢索列表;
A2)對(duì)所述檢索列表中的每一項(xiàng)設(shè)定一指向所述共享存儲(chǔ)區(qū)域中不同存儲(chǔ)段的地址指
針;
A3)將所述地址指針指向的存儲(chǔ)段初始化。在本發(fā)明所述的在多進(jìn)程之間共享股票數(shù)據(jù)的方法中,所述步驟Al)中進(jìn)一步包括如下步驟
All)取得每個(gè)股票的名稱(chēng)代碼;
A12)將所述取得的名稱(chēng)代碼使用長(zhǎng)度固定而內(nèi)容不同的字符串替代,得到所述股票的檢索代碼;
A13)排列所述檢索代碼得到檢索列表。在本發(fā)明所述的在多進(jìn)程之間共享股票數(shù)據(jù)的方法中,所述步驟D)中進(jìn)一步包括如下步驟各進(jìn)程分別按照所述股票的檢索代碼和取得的地址指針在所述地址指針指向的區(qū)域取得其所需數(shù)據(jù)。本發(fā)明還涉及一種實(shí)現(xiàn)上述在多進(jìn)程之間共享股票數(shù)據(jù)方法的裝置,包括 共享存儲(chǔ)區(qū)建立單元用于在共享存儲(chǔ)區(qū)域建立每個(gè)股票的檢索列表,并分別將所述
檢索列表中每一項(xiàng)與所述共享存儲(chǔ)區(qū)域中的一段存儲(chǔ)區(qū)域?qū)?yīng);
股票數(shù)據(jù)存儲(chǔ)單元用于將接收到的股票數(shù)據(jù)經(jīng)過(guò)處理后分別存入其檢索列表項(xiàng)對(duì)應(yīng)的存儲(chǔ)區(qū)域;
數(shù)據(jù)通知單元用于通過(guò)消息管道通知需要所述已更新數(shù)據(jù)的進(jìn)程;
數(shù)據(jù)排列單元用于按照所述股票的檢索代碼和取得的增量值次序排列各進(jìn)程需要數(shù)據(jù)。在本發(fā)明所述的裝置中,所述股票數(shù)據(jù)存儲(chǔ)單元進(jìn)一步包括 股票數(shù)據(jù)取得模塊用于取得一個(gè)股票數(shù)據(jù);
增量值取得模塊用于將當(dāng)前取得的股票數(shù)據(jù)與同一數(shù)據(jù)的先前取得的值比較,得到其增量值;
增量值存儲(chǔ)模塊用于存儲(chǔ)所述得到的增量值到所述共享存儲(chǔ)區(qū)域中與該股票數(shù)據(jù)對(duì)應(yīng)的指定存儲(chǔ)區(qū)域中。在本發(fā)明所述的裝置中,所述共享存儲(chǔ)區(qū)取得單元進(jìn)一步包括 檢索列表形成模塊用于形成股票檢索列表;
地址指針設(shè)置模塊用于對(duì)所述檢索列表中的每一項(xiàng)設(shè)定一指向所述共享存儲(chǔ)區(qū)域中不同存儲(chǔ)段的地址指針;
存儲(chǔ)單元初始化模塊用于將所述地址指針指向的存儲(chǔ)段初始化。在本發(fā)明所述的裝置中,所述檢索列表形成模塊進(jìn)一步包括 股票代碼取得子模塊用于取得每個(gè)股票的名稱(chēng)代碼;
檢索碼形成子模塊用于將所述取得的名稱(chēng)代碼使用長(zhǎng)度固定而內(nèi)容不同的字符串替代,得到所述股票的檢索代碼;
在本發(fā)明所述的裝置中,所述數(shù)據(jù)排列單元進(jìn)一步包括用于在各進(jìn)程取得數(shù)據(jù)時(shí)將所述股票的檢索代碼和取得的增量值排列的數(shù)據(jù)排列模塊。實(shí)施本發(fā)明的在多進(jìn)程之間共享股票數(shù)據(jù)的方法及裝置,具有以下有益效果由于按照該股票的名稱(chēng)形成檢索列表,且每個(gè)檢索列表分別對(duì)應(yīng)固定的存儲(chǔ)位置,該位置中存儲(chǔ)的是股票數(shù)據(jù)的增量值,傳輸?shù)囊彩窃撛隽恐?,所以其查找?shù)據(jù)較方便、傳輸數(shù)據(jù)量較?。灰虼?,在多進(jìn)程共享數(shù)據(jù)時(shí)占用時(shí)間較短,耗費(fèi)CPU資源較少。


圖1是本發(fā)明在多進(jìn)程之間共享股票數(shù)據(jù)的方法及裝置實(shí)施例中共享股票數(shù)據(jù)的方法的流程圖2是所述實(shí)施例中股票數(shù)據(jù)處理流程圖3是所述實(shí)施例中檢索碼列表形成的流程圖4是所述實(shí)施例中實(shí)現(xiàn)多進(jìn)程之間共享股票數(shù)據(jù)的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步說(shuō)明。如圖1所示,在本發(fā)明在多進(jìn)程之間共享股票數(shù)據(jù)的方法及裝置實(shí)施例中,在多進(jìn)程之間共享股票數(shù)據(jù)的方法流程包括如下步驟
步驟Sll建立檢索列表,對(duì)應(yīng)列表中的項(xiàng)和指定的存儲(chǔ)區(qū)域在本步驟中,劃分或指定一存儲(chǔ)區(qū)域作為共享存儲(chǔ)區(qū)域,并在在共享存儲(chǔ)區(qū)域建立包括每個(gè)股票的檢索列表,并分別將檢索列表中每一項(xiàng)與所述共享存儲(chǔ)區(qū)域中的一段存儲(chǔ)區(qū)域?qū)?yīng);也就是說(shuō),將每個(gè)股票(通常是股票名稱(chēng)代碼,在本實(shí)施例中是由股票名稱(chēng)代碼轉(zhuǎn)換而來(lái)的檢索碼)排列到檢索列表中,并對(duì)每個(gè)股票數(shù)據(jù)存儲(chǔ)在共享存儲(chǔ)區(qū)內(nèi)的位置做出規(guī)定。使得一個(gè)股票的數(shù)據(jù)只能存儲(chǔ)在指定的位置。步驟S12將股票數(shù)據(jù)處理后存在其對(duì)應(yīng)的存儲(chǔ)區(qū)域在本步驟中,將接收到的股票數(shù)據(jù)經(jīng)過(guò)處理后分別存入其檢索列表項(xiàng)對(duì)應(yīng)的存儲(chǔ)區(qū)域;每個(gè)股票均有相應(yīng)的數(shù)據(jù),各個(gè)股票的數(shù)據(jù)并不相同;這些數(shù)據(jù)在取得后,并不是將取得的數(shù)據(jù)本身存入指定區(qū)域,而是將經(jīng)過(guò)處理后的數(shù)據(jù)存入,至于在本實(shí)施例中如何處理取得的股票數(shù)據(jù),稍后詳述。步驟S13通知進(jìn)程數(shù)據(jù)已更新在上述步驟中,完成了數(shù)據(jù)的存儲(chǔ)。上述步驟中, 步驟S12可能會(huì)重復(fù)許多次,分別將不同股票的數(shù)據(jù)存入不同的存儲(chǔ)地址。當(dāng)然,不管重復(fù)多少次,其股票的處理方式是相同的,不同的只是由于股票不同而帶來(lái)的不同數(shù)據(jù)內(nèi)容和存儲(chǔ)地址。在本步驟中,通過(guò)連接進(jìn)程的消息管道通知進(jìn)程數(shù)據(jù)已更新,這些進(jìn)程均為需要股票數(shù)據(jù)的進(jìn)程。此如果一個(gè)進(jìn)程要求的是未變化的股票數(shù)據(jù),則返回一個(gè)空的消息,進(jìn)程收到該消息后就會(huì)知道數(shù)據(jù)未變化,直接使用之前的數(shù)據(jù)即可。在一些情況下,也可以返回變化增量0,這使得本實(shí)施例中的方法具有更廣泛的使用范圍。步驟S14各進(jìn)程取得數(shù)據(jù)在本步驟中,各進(jìn)程到上述共享存儲(chǔ)區(qū)域中取得其需要的股票數(shù)據(jù);具體來(lái)講,需要將股票的檢索代碼和該股票數(shù)據(jù)值(更新值,在本實(shí)施例中是股票數(shù)據(jù)的增量值,稍后有較為詳細(xì)的描述)排列后由各進(jìn)程讀取。即每個(gè)進(jìn)程讀取每個(gè)股票數(shù)據(jù)的先后是先讀取該股票的檢索代碼,再讀取該股票數(shù)據(jù)的增量值。其中,上述步驟S12是存儲(chǔ)每一個(gè)股票數(shù)據(jù)所需的步驟,由于市場(chǎng)上具有許多個(gè)股票,所以,步驟S12需要重復(fù)許多次,每個(gè)股票數(shù)據(jù)值的取得都需要重復(fù)一次。如圖2所示,步驟S12中進(jìn)一步包括步驟S21取得一個(gè)股票數(shù)據(jù)在本步驟中,從外部或其他數(shù)據(jù)源裝置取得一個(gè)股票數(shù)據(jù),該股票數(shù)據(jù)是未經(jīng)處理的、通常的股票數(shù)據(jù),例如,股票的當(dāng)前價(jià)格。步驟S22比較當(dāng)前取得數(shù)據(jù)與較早取得的該數(shù)據(jù)的值,得到其增量值在本步驟中,將當(dāng)前取得的股票數(shù)據(jù)值與同一數(shù)據(jù)的先前取得的值比較,得到其增量值。例如,某個(gè)股票之前的價(jià)格是7. 90元,當(dāng)前的價(jià)格為8. 00元,則其增量值為0. 1元;如果一個(gè)股票數(shù)據(jù)沒(méi)有變化,則其增量值為0。當(dāng)上述增量值為0時(shí),如果該數(shù)據(jù)被要求,則可以不傳輸,這樣可以極大地減少數(shù)據(jù)的傳輸量;即使傳輸該數(shù)據(jù),則對(duì)于0而言,需要的傳輸字節(jié)數(shù)較一個(gè)小數(shù)或整數(shù)的字節(jié)也會(huì)大大減少,還是可以減小數(shù)據(jù)傳輸量。因此,在上述增量值為0的情況下,不管如何,都能減少數(shù)據(jù)傳輸量。而對(duì)于股票數(shù)據(jù)而言,大多數(shù)時(shí)候,股票數(shù)據(jù)的增量值都是為0的。因此本實(shí)施例中數(shù)據(jù)傳輸量較現(xiàn)有技術(shù)而言,大大地減少了。其占用的時(shí)間和消耗的資源也大大減少了。步驟S23存儲(chǔ)該增量值到該股票數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)區(qū)域在本步驟中,將每個(gè)得到的對(duì)應(yīng)于一個(gè)股票的股票數(shù)據(jù)增量值存儲(chǔ)到共享存儲(chǔ)區(qū)域中與該股票數(shù)據(jù)對(duì)應(yīng)的指定存儲(chǔ)區(qū)域(即被檢索列表中股票項(xiàng)的地址指針指向的存儲(chǔ)區(qū)域)中。而在本實(shí)施例中,如圖3所示,步驟Sll還進(jìn)一步包括
步驟S31取得股票名稱(chēng)代碼在本步驟中,取得每個(gè)股票的名稱(chēng)代碼; 步驟S32以不同的字符串代替該股票名稱(chēng)代碼,得到該股票的檢索碼在本步驟中, 將取得的股票名稱(chēng)代碼使用長(zhǎng)度固定而內(nèi)容不同的字符串替代,得到所述股票的檢索代碼;在本實(shí)施例中,使用兩個(gè)字節(jié)的字符串來(lái)表示股票名稱(chēng)。上述步驟S31和S32也是表示了一只股票的操作流程,由于市場(chǎng)上具有多只股票,所以,在本實(shí)施例,上述步驟S31和S32 會(huì)重復(fù)許多次,一只股票一次。步驟S33排列多個(gè)股票檢索碼,得到檢索列表在本步驟中,將經(jīng)過(guò)上述步驟的重復(fù)得到的多個(gè)股票的檢索碼排列,得到檢索列表,每個(gè)股票檢索碼占用該檢索列表的一項(xiàng),從而形成股票檢索列表。在本步驟中,檢索列表所在的地址與股票的檢索代碼相同或呈某種對(duì)應(yīng)關(guān)系(也就是通過(guò)對(duì)檢索代碼進(jìn)行設(shè)定的變換得到的地址)。步驟S34為檢索列表的每項(xiàng)賦予表示不同存儲(chǔ)區(qū)域的地址指針在本步驟中,對(duì)所述檢索列表中的每一項(xiàng)設(shè)定一指向所述共享存儲(chǔ)區(qū)域中不同存儲(chǔ)段的地址指針;也就是說(shuō),檢索列表中的每一項(xiàng)都被賦予的、表示不同存儲(chǔ)區(qū)域的地址指針?biāo)畛?,即檢索列表的內(nèi)容包括一系列的地址指針。這些地址指針通過(guò)映射指出了其對(duì)應(yīng)的存儲(chǔ)段或存儲(chǔ)區(qū)域的位置。步驟S35初始化被上述地址指針指向的存儲(chǔ)區(qū)域在本步驟中,將所述地址指針指向的存儲(chǔ)段初始化。也就是將所有地址指針指向的存儲(chǔ)區(qū)域格式化,準(zhǔn)備接收數(shù)據(jù)。在本實(shí)施例中,還涉及一種實(shí)現(xiàn)多進(jìn)程之間共享股票數(shù)據(jù)的裝置,其結(jié)構(gòu)如圖4 所示,該裝置包括共享存儲(chǔ)區(qū)建立單元41、股票數(shù)據(jù)存儲(chǔ)單元42、數(shù)據(jù)通知單元43及數(shù)據(jù)排列單元44。其中,共享存儲(chǔ)區(qū)建立單元41用于在共享存儲(chǔ)區(qū)域建立每個(gè)股票的檢索列表,并分別將所述檢索列表中每一項(xiàng)與所述共享存儲(chǔ)區(qū)域中的一段存儲(chǔ)區(qū)域?qū)?yīng);股票數(shù)據(jù)存儲(chǔ)單元42用于將接收到的股票數(shù)據(jù)經(jīng)過(guò)處理后分別存入其檢索列表項(xiàng)對(duì)應(yīng)的存儲(chǔ)區(qū)域;數(shù)據(jù)通知單元43用于通過(guò)消息管道通知需要所述已更新數(shù)據(jù)的進(jìn)程;數(shù)據(jù)排列單元44 各進(jìn)程在所述共享存儲(chǔ)區(qū)域中取得股票數(shù)據(jù)。其中數(shù)據(jù)排列單元44進(jìn)一步包括用于在各進(jìn)程取得數(shù)據(jù)時(shí)將所述股票的檢索代碼和取得的增量值排列的數(shù)據(jù)排列模塊441 (該模塊使得各進(jìn)程在讀取股票數(shù)據(jù)時(shí)先讀取股票的檢索代碼,再讀取該檢索代碼表示股票的當(dāng)前數(shù)據(jù)的增量值)。在本實(shí)施例中,股票數(shù)據(jù)存儲(chǔ)單元42進(jìn)一步包括用于取得一個(gè)股票數(shù)據(jù)的股票數(shù)據(jù)取得模塊421 ;用于將當(dāng)前取得的股票數(shù)據(jù)與同一數(shù)據(jù)的先前取得的值比較,得到其增量值的增量值取得模塊422 ;用于存儲(chǔ)所述得到的增量值到所述共享存儲(chǔ)區(qū)域中與該股票數(shù)據(jù)對(duì)應(yīng)的指定存儲(chǔ)區(qū)域中的增量值存儲(chǔ)模塊423。而共享存儲(chǔ)區(qū)取得單元41進(jìn)一步包括用于形成股票檢索列表的檢索列表形成模塊411 ;用于對(duì)所述檢索列表中的每一項(xiàng)設(shè)定一指向所述共享存儲(chǔ)區(qū)域中不同存儲(chǔ)段的地址指針的地址指針設(shè)置模塊412 ;用于將所述地址指針指向的存儲(chǔ)段初始化的存儲(chǔ)單元初始化模塊413。其中,檢索列表形成模塊411 進(jìn)一步包括用于取得每個(gè)股票的名稱(chēng)代碼的股票代碼取得子模塊414以及用于將所述取得的名稱(chēng)代碼使用長(zhǎng)度固定而內(nèi)容不同的字符串替代,得到所述股票的檢索代碼的檢索碼形成子模塊415??偠灾?,在本實(shí)施例中,基于數(shù)據(jù)存放于共享區(qū)的策略,服務(wù)進(jìn)程(包括生產(chǎn)進(jìn)程和消費(fèi)進(jìn)程)共用共享存儲(chǔ)區(qū)域。首先啟動(dòng)的服務(wù)進(jìn)程首先創(chuàng)建共享存儲(chǔ)區(qū)域,后面啟動(dòng)的服務(wù)進(jìn)程則映射共享區(qū)。共享存儲(chǔ)區(qū)域創(chuàng)建后,服務(wù)進(jìn)程的動(dòng)態(tài)增刪將不再影響共享存儲(chǔ)區(qū)域,因此服務(wù)進(jìn)程可以動(dòng)態(tài)配置。共享存儲(chǔ)區(qū)域創(chuàng)建后,對(duì)股票代碼和市場(chǎng)類(lèi)型進(jìn)行預(yù)編碼,由于證券市場(chǎng)有很多交易所,每只股票通過(guò)市場(chǎng)類(lèi)型和股票代碼唯一標(biāo)識(shí)一只股票。 以現(xiàn)有市場(chǎng)的股票代碼規(guī)則計(jì)算,至少要8個(gè)字節(jié)來(lái)標(biāo)識(shí)(例如sz000001) —只股票,每次數(shù)據(jù)傳輸,對(duì)單只股票來(lái)說(shuō),都需要傳輸一次。每次行情包括指數(shù)等有4000多只,3 6秒一次的數(shù)據(jù)更新,冗余量非常大,為了減少傳輸?shù)膸捄驮诜?wù)器內(nèi)數(shù)據(jù)的快速索引,在本實(shí)施例中,采取了對(duì)股票代碼和市場(chǎng)類(lèi)型進(jìn)行預(yù)編碼。采用2個(gè)字節(jié)作為唯一的股票檢索碼,當(dāng)行情更新時(shí),傳輸?shù)氖枪善彼饕瑫r(shí),通過(guò)索引可以快速查找到在存儲(chǔ)塊中的數(shù)據(jù), 提高效率。股票檢索碼跟股票代碼和市場(chǎng)類(lèi)型的對(duì)應(yīng)關(guān)系在行情初始化時(shí)就會(huì)在各服務(wù)器和客戶(hù)端之間進(jìn)行同步。通過(guò)對(duì)股票代碼和市場(chǎng)類(lèi)型進(jìn)行編碼后,就產(chǎn)生2字節(jié)大小的股票檢索碼。在共享存儲(chǔ)區(qū)中建立一個(gè)檢索碼表跟數(shù)據(jù)塊(存儲(chǔ)區(qū)域)指針對(duì)應(yīng)關(guān)系的編碼表 (即檢索列表)。通過(guò)股票檢索碼作為索引編碼表數(shù)組的下標(biāo),(即股票檢索碼作為檢索列表數(shù)組的直接或間接地址,由于股票檢索碼是通過(guò)兩個(gè)字節(jié)構(gòu)成的,所以直接設(shè)置其數(shù)量是 65536的數(shù)組,這個(gè)數(shù)組中每項(xiàng)填入地址指針,就是檢索列表,其中,65536是2的16次方) 可以快速定位出數(shù)據(jù)塊的存儲(chǔ)地址。這種方式可以以恒定時(shí)間級(jí)別定位到數(shù)據(jù),以空間換時(shí)間,而整個(gè)檢索碼列表僅一份,為生產(chǎn)進(jìn)程和多消費(fèi)服務(wù)共享。從4個(gè)小時(shí)的交易市場(chǎng)來(lái)看,對(duì)同一只股票來(lái)說(shuō)股票數(shù)據(jù)前后2個(gè)數(shù)據(jù)相差不多, 通過(guò)對(duì)股票數(shù)據(jù)采用增量壓縮技術(shù),可以極大的減少內(nèi)部的存儲(chǔ)空間和網(wǎng)絡(luò)的傳輸帶寬。 普通股價(jià)傳輸?shù)娇蛻?hù)端通常需要4個(gè)字節(jié),而采用增量壓縮的方式,跟前一個(gè)股價(jià)相同時(shí), 可以不進(jìn)行傳輸,這種情況在個(gè)股數(shù)據(jù)傳輸中會(huì)大量存在。同時(shí),即使傳輸也不需要4個(gè)字節(jié)。同時(shí),在本實(shí)施例中,還采取預(yù)存儲(chǔ)的方式,就是生產(chǎn)進(jìn)程根據(jù)增量壓縮策略一次壓縮相應(yīng)股票數(shù)據(jù),多個(gè)消費(fèi)進(jìn)程不需要再進(jìn)行一次壓縮編碼,直接根據(jù)索引快速尋找內(nèi)存塊中的數(shù)據(jù),采用FAST的編碼,通過(guò)幀間差值編碼的壓縮技術(shù),多個(gè)消費(fèi)進(jìn)程來(lái)取就直接來(lái)取,不用多次壓縮,節(jié)約內(nèi)存和CPU時(shí)間。
在本實(shí)施例中,一份數(shù)據(jù)多進(jìn)程共享,進(jìn)程可動(dòng)態(tài)增加,進(jìn)程可動(dòng)態(tài)減少,提高擴(kuò)展性強(qiáng)。通過(guò)股票索引以衡定時(shí)間快速索引數(shù)據(jù)。一臺(tái)機(jī)器同時(shí)有多個(gè)服務(wù)進(jìn)程運(yùn)行,不同服務(wù)進(jìn)程之間使用共享內(nèi)存進(jìn)行數(shù)據(jù)的共享,多進(jìn)程可同類(lèi)服務(wù)進(jìn)程,也可不同類(lèi)。如果一個(gè)進(jìn)程用多線(xiàn),那么進(jìn)程提供服務(wù)就單一。如果按普通多進(jìn)程的方式,一個(gè)程序是一種服務(wù),有多種服務(wù)就不能共享,要另外開(kāi)傳輸數(shù)據(jù)共享。減少數(shù)據(jù)的多方拷貝也節(jié)省內(nèi)存空間,加快數(shù)據(jù)的遷移速度。進(jìn)程之間的通過(guò)消息管道同步消息。多個(gè)進(jìn)程可減少數(shù)據(jù)搬遷的速度,CPU效率提高。多個(gè)進(jìn)程共享流程如上所述,包括了生產(chǎn)進(jìn)程接收到數(shù)據(jù),經(jīng)過(guò)生產(chǎn)進(jìn)程進(jìn)行解碼和規(guī)范化;將數(shù)據(jù)存儲(chǔ)在共享內(nèi)存區(qū);發(fā)送數(shù)據(jù)送達(dá)通知消息到消息管道; 服務(wù)器內(nèi)多個(gè)消費(fèi)進(jìn)程監(jiān)聽(tīng)管道,并捕獲到數(shù)據(jù)送達(dá)通知消息;消費(fèi)進(jìn)程到數(shù)據(jù)共享區(qū)中獲取到所要的數(shù)據(jù);消費(fèi)進(jìn)程經(jīng)過(guò)業(yè)務(wù)處理,將數(shù)據(jù)傳遞到下一級(jí)的生產(chǎn)進(jìn)程。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種在多進(jìn)程之間共享股票數(shù)據(jù)的方法,其特征在于,包括如下步驟A)在共享存儲(chǔ)區(qū)域建立每個(gè)股票的檢索列表,并分別將所述檢索列表中每一項(xiàng)與所述共享存儲(chǔ)區(qū)域中的一段存儲(chǔ)區(qū)域?qū)?yīng);B)將接收到的股票數(shù)據(jù)經(jīng)過(guò)處理后分別存入其檢索列表項(xiàng)對(duì)應(yīng)的存儲(chǔ)區(qū)域;C)通過(guò)消息管道通知需要所述已更新數(shù)據(jù)的進(jìn)程;D)各進(jìn)程在所述共享存儲(chǔ)區(qū)域中取得股票數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的在多進(jìn)程之間共享股票數(shù)據(jù)的方法,其特征在于,所述步驟 B)中進(jìn)一步包括如下步驟Bi)取得一個(gè)股票數(shù)據(jù);B2)將當(dāng)前取得的股票數(shù)據(jù)與同一數(shù)據(jù)的先前取得的值比較,得到其增量值;B3)存儲(chǔ)所述得到的增量值到所述共享存儲(chǔ)區(qū)域中與該股票數(shù)據(jù)對(duì)應(yīng)的指定存儲(chǔ)區(qū)域中。
3.根據(jù)權(quán)利要求2所述的在多進(jìn)程之間共享股票數(shù)據(jù)的方法,其特征在于,所述步驟 A)中進(jìn)一步包括如下步驟Al)形成股票檢索列表;A2)對(duì)所述檢索列表中的每一項(xiàng)設(shè)定一指向所述共享存儲(chǔ)區(qū)域中不同存儲(chǔ)段的地址指針;A3)將所述地址指針指向的存儲(chǔ)段初始化。
4.根據(jù)權(quán)利要求3所述的在多進(jìn)程之間共享股票數(shù)據(jù)的方法,其特征在于,所述步驟 Al)中進(jìn)一步包括如下步驟All)取得每個(gè)股票的名稱(chēng)代碼;A12)將所述取得的名稱(chēng)代碼使用長(zhǎng)度固定而內(nèi)容不同的字符串替代,得到所述股票的檢索代碼;A13)排列所述檢索代碼得到檢索列表。
5.根據(jù)權(quán)利要求1-4中任意一項(xiàng)所述的在多進(jìn)程之間共享股票數(shù)據(jù)的方法,其特征在于,所述步驟D)中進(jìn)一步包括如下步驟各進(jìn)程分別按照所述股票的檢索代碼和取得的地址指針在所述地址指針指向的區(qū)域取得其所需數(shù)據(jù)。
6.一種在多進(jìn)程之間共享股票數(shù)據(jù)的裝置,其特征在于,包括共享存儲(chǔ)區(qū)建立單元用于在共享存儲(chǔ)區(qū)域建立每個(gè)股票的檢索列表,并分別將所述檢索列表中每一項(xiàng)與所述共享存儲(chǔ)區(qū)域中的一段存儲(chǔ)區(qū)域?qū)?yīng);股票數(shù)據(jù)存儲(chǔ)單元用于將接收到的股票數(shù)據(jù)經(jīng)過(guò)處理后分別存入其檢索列表項(xiàng)對(duì)應(yīng)的存儲(chǔ)區(qū)域;數(shù)據(jù)通知單元用于通過(guò)消息管道通知需要所述已更新數(shù)據(jù)的進(jìn)程;數(shù)據(jù)排列單元用于按照所述股票的檢索代碼和取得的增量值次序排列各進(jìn)程需要數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的在多進(jìn)程之間共享股票數(shù)據(jù)的裝置,其特征在于,所述股票數(shù)據(jù)存儲(chǔ)單元進(jìn)一步包括股票數(shù)據(jù)取得模塊用于取得一個(gè)股票數(shù)據(jù);增量值取得模塊用于將當(dāng)前取得的股票數(shù)據(jù)與同一數(shù)據(jù)的先前取得的值比較,得到其增量值;增量值存儲(chǔ)模塊用于存儲(chǔ)所述得到的增量值到所述共享存儲(chǔ)區(qū)域中與該股票數(shù)據(jù)對(duì)應(yīng)的指定存儲(chǔ)區(qū)域中。
8.根據(jù)權(quán)利要求7所述的在多進(jìn)程之間共享股票數(shù)據(jù)的裝置,其特征在于,所述共享存儲(chǔ)區(qū)取得單元進(jìn)一步包括檢索列表形成模塊用于形成股票檢索列表;地址指針設(shè)置模塊用于對(duì)所述檢索列表中的每一項(xiàng)設(shè)定一指向所述共享存儲(chǔ)區(qū)域中不同存儲(chǔ)段的地址指針;存儲(chǔ)單元初始化模塊用于將所述地址指針指向的存儲(chǔ)段初始化。
9.根據(jù)權(quán)利要求8所述的在多進(jìn)程之間共享股票數(shù)據(jù)的裝置,其特征在于,所述檢索列表形成模塊進(jìn)一步包括股票代碼取得子模塊用于取得每個(gè)股票的名稱(chēng)代碼;檢索碼形成子模塊用于將所述取得的名稱(chēng)代碼使用長(zhǎng)度固定而內(nèi)容不同的字符串替代,得到所述股票的檢索代碼;檢索碼排列子模塊用于排列所述檢索代碼得到檢索列表。
10.根據(jù)權(quán)利要求9所述的在多進(jìn)程之間共享股票數(shù)據(jù)的裝置,其特征在于,所述數(shù)據(jù)排列單元進(jìn)一步包括用于在各進(jìn)程取得數(shù)據(jù)時(shí)將所述股票的檢索代碼和取得的增量值排列的數(shù)據(jù)排列模塊。
全文摘要
本發(fā)明涉及一種在多進(jìn)程之間共享股票數(shù)據(jù)的方法,包括如下步驟在共享存儲(chǔ)區(qū)域建立每個(gè)股票的檢索列表,并分別將所述檢索列表中每一項(xiàng)與所述共享存儲(chǔ)區(qū)域中的一段存儲(chǔ)區(qū)域?qū)?yīng);將接收到的股票數(shù)據(jù)經(jīng)過(guò)處理后分別存入其檢索列表項(xiàng)對(duì)應(yīng)的存儲(chǔ)區(qū)域;通過(guò)消息管道通知需要所述已更新數(shù)據(jù)的進(jìn)程;各進(jìn)程在所述共享存儲(chǔ)區(qū)域中取得股票數(shù)據(jù)。本發(fā)明還涉及一種在多進(jìn)程之間共享股票數(shù)據(jù)的裝置。實(shí)施本發(fā)明的在多進(jìn)程之間共享股票數(shù)據(jù)的方法及裝置,具有以下有益效果占用時(shí)間較短,耗費(fèi)CPU資源較少。
文檔編號(hào)G06Q40/04GK102385526SQ20111036340
公開(kāi)日2012年3月21日 申請(qǐng)日期2011年11月16日 優(yōu)先權(quán)日2011年11月16日
發(fā)明者周垂富, 王欽才 申請(qǐng)人:深圳市大贏(yíng)家網(wǎng)絡(luò)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1