一種單進(jìn)程數(shù)據(jù)處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及軟件技術(shù)領(lǐng)域,更具體地說,涉及一種單進(jìn)程數(shù)據(jù)處理方法及裝置。
【背景技術(shù)】
[0002]單例模式是一種常用的軟件設(shè)計模式。在它的核心結(jié)構(gòu)中只包含一個被稱為單例類的特殊類。通過單例模式可以保證系統(tǒng)中一個應(yīng)用程序只有一個進(jìn)程(實(shí)例),從而方便對進(jìn)程(實(shí)例)個數(shù)的控制并節(jié)約系統(tǒng)資源。
[0003]現(xiàn)有技術(shù)采用命名內(nèi)核對象的方式實(shí)現(xiàn)單例模式。具體地,當(dāng)首次啟動應(yīng)用程序時創(chuàng)建一個進(jìn)程,并按照預(yù)先設(shè)定的應(yīng)用程序所對應(yīng)的名稱來命名內(nèi)核對象;當(dāng)用戶再次通過雙擊應(yīng)用程序快捷方式等方式來啟動應(yīng)用程序時,創(chuàng)建一個新的進(jìn)程,查詢是否存在與應(yīng)用程序?qū)?yīng)的名稱的內(nèi)核對象,在查詢存在時,將新創(chuàng)建的進(jìn)程銷毀掉。這樣,針對同一個應(yīng)用程序先后創(chuàng)建的兩個進(jìn)程之間無法直接傳遞數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本申請?zhí)峁┝艘环N單進(jìn)程數(shù)據(jù)處理方法及裝置,用于解決現(xiàn)有技術(shù)在實(shí)現(xiàn)單例模式時,針對同一個應(yīng)用程序先后創(chuàng)建的兩個進(jìn)程之間無法直接傳遞數(shù)據(jù)的問題。
[0005]為了實(shí)現(xiàn)上述目的,現(xiàn)提出的方案如下:
[0006]一種單進(jìn)程數(shù)據(jù)處理方法,包括:
[0007]響應(yīng)應(yīng)用程序啟動請求,創(chuàng)建與所述應(yīng)用程序?qū)?yīng)的進(jìn)程,作為當(dāng)前進(jìn)程,所述當(dāng)前進(jìn)程包含命令行參數(shù);
[0008]查詢是否存在與所述應(yīng)用程序?qū)?yīng)的消息窗口;
[0009]若是,將所述命令行參數(shù)發(fā)送至查詢到的消息窗口,以供應(yīng)用程序首次啟動時所創(chuàng)建的進(jìn)程從所述查詢到的消息窗口讀取并執(zhí)行所述命令行參數(shù),其中,所述查詢到的消息窗口為所述應(yīng)用程序首次啟動時所創(chuàng)建;
[0010]銷毀所述當(dāng)前進(jìn)程。
[0011 ] —種單進(jìn)程數(shù)據(jù)處理裝置,包括:
[0012]進(jìn)程創(chuàng)建單元,用于響應(yīng)應(yīng)用程序啟動請求,創(chuàng)建與所述應(yīng)用程序?qū)?yīng)的進(jìn)程,作為當(dāng)前進(jìn)程,所述當(dāng)前進(jìn)程包含命令行參數(shù);
[0013]窗口查詢單元,用于查詢是否存在與所述應(yīng)用程序?qū)?yīng)的消息窗口;
[0014]參數(shù)發(fā)送單元,用于在查詢到與所述應(yīng)用程序?qū)?yīng)的消息窗口時,將所述命令行參數(shù)發(fā)送至查詢到的消息窗口,以供應(yīng)用程序首次啟動時所創(chuàng)建的進(jìn)程從所述查詢到的消息窗口讀取并執(zhí)行所述命令行參數(shù),其中,所述查詢到的消息窗口為所述應(yīng)用程序首次啟動時所創(chuàng)建;
[0015]進(jìn)程銷毀單元,用于銷毀所述當(dāng)前進(jìn)程。
[0016]從上述的技術(shù)方案可以看出,應(yīng)用本申請實(shí)施例提供的單進(jìn)程數(shù)據(jù)處理方法,在響應(yīng)應(yīng)用程序啟動請求時,創(chuàng)建與應(yīng)用程序?qū)?yīng)的進(jìn)程,作為當(dāng)前進(jìn)程,該當(dāng)前進(jìn)程包含有命令行參數(shù),查詢是否存在與應(yīng)用程序?qū)?yīng)的消息窗口,若是,則說明在本次啟動應(yīng)用程序之前已經(jīng)啟動過應(yīng)用程序,也即操作系統(tǒng)中存在應(yīng)用程序首次啟動時所創(chuàng)建的進(jìn)程和消息窗口,因此將命令行參數(shù)發(fā)送至查詢到的消息窗口,以供應(yīng)用程序首次啟動時創(chuàng)建的進(jìn)程從消息窗口中讀取并執(zhí)行所述命令行參數(shù),進(jìn)而銷毀當(dāng)前進(jìn)程。本申請的方案利用消息窗口實(shí)現(xiàn)兩個進(jìn)程間數(shù)據(jù)的傳遞,同時保證了操作系統(tǒng)中只有一個與應(yīng)用程序?qū)?yīng)的進(jìn)程,也即保證了單例模式的實(shí)現(xiàn)。
【附圖說明】
[0017]為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0018]圖1為本申請實(shí)施例公開的一種單進(jìn)程數(shù)據(jù)處理方法流程圖;
[0019]圖2為本申請實(shí)施例公開的另一種單進(jìn)程數(shù)據(jù)處理方法流程圖;
[0020]圖3為本申請實(shí)施例公開的又一種單進(jìn)程數(shù)據(jù)處理方法流程圖;
[0021]圖4為本申請實(shí)施例公開的一種單進(jìn)程數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖;
[0022]圖5為本申請實(shí)施例公開的一種窗口查詢單元結(jié)構(gòu)示意圖;
[0023]圖6為本申請實(shí)施例公開的另一種單進(jìn)程數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖;
[0024]圖7為本申請實(shí)施例公開的一種參數(shù)發(fā)送單元結(jié)構(gòu)示意圖;
[0025]圖8為本申請實(shí)施例公開的一種終端設(shè)備的硬件結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0026]下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
[0027]本申請介紹了一種應(yīng)用于終端的操作系統(tǒng)上的單進(jìn)程數(shù)據(jù)處理方法,在保證單例模式的情況下,實(shí)現(xiàn)了針對同一個應(yīng)用程序先后創(chuàng)建的兩個進(jìn)程之間的數(shù)據(jù)傳遞。
[0028]參見圖1,圖1為本申請實(shí)施例公開的一種單進(jìn)程數(shù)據(jù)處理方法流程圖。
[0029]如圖1所示,該方法包括:
[0030]步驟S100、響應(yīng)應(yīng)用程序啟動請求,創(chuàng)建與所述應(yīng)用程序?qū)?yīng)的進(jìn)程,作為當(dāng)前進(jìn)程,所述當(dāng)前進(jìn)程包含命令行參數(shù);
[0031]具體地,應(yīng)用程序的啟動請求可以是用戶雙擊桌面上應(yīng)用程序的快捷方式,或者是用戶通過輸入命令語句的方式來啟動應(yīng)用程序。
[0032]其中,進(jìn)程是計算機(jī)中的程序關(guān)于某數(shù)據(jù)集合上的一次運(yùn)行活動,是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。在早期面向進(jìn)程設(shè)計的計算機(jī)結(jié)構(gòu)中,進(jìn)程是程序的基本執(zhí)行實(shí)體;在當(dāng)代面向線程設(shè)計的計算機(jī)結(jié)構(gòu)中,進(jìn)程是線程的容器。程序是指令、數(shù)據(jù)及其組織形式的描述,進(jìn)程是程序的實(shí)體。
[0033]步驟SI10、查詢是否存在與所述應(yīng)用程序?qū)?yīng)的消息窗口,若是,執(zhí)行步驟S120;
[0034]具體地,在應(yīng)用程序首次啟動時會創(chuàng)建一個進(jìn)程以及消息窗口。因此,本步驟中查詢是否存在與應(yīng)用程序?qū)?yīng)的消息窗口,如果查詢到,則說明在本次啟動應(yīng)用程序之前已經(jīng)啟動過應(yīng)用程序,也即首次啟動應(yīng)用程序時已經(jīng)創(chuàng)建了對應(yīng)的進(jìn)程和消息窗口。
[0035]其中,消息窗口對用戶而言是透明的,該消息窗口用于裝載進(jìn)程所處理的消息,也即與應(yīng)用程序?qū)?yīng)的消息都會加載到消息窗口中,進(jìn)程從消息窗口中讀取并執(zhí)行消息。
[0036]步驟S120、將所述命令行參數(shù)發(fā)送至查詢到的消息窗口;
[0037]具體地,在查詢到與應(yīng)用程序?qū)?yīng)的消息窗口時,將當(dāng)前進(jìn)程的命令行參數(shù)發(fā)送給查詢到的消息窗口,以供應(yīng)用程序首次啟動時所創(chuàng)建的進(jìn)程從所述查詢到的消息窗口讀取并執(zhí)行所述命令行參數(shù),其中,所述查詢到的消息窗口為所述應(yīng)用程序首次啟動時所創(chuàng)建。
[0038]通過消息窗口實(shí)現(xiàn)了當(dāng)前進(jìn)程和應(yīng)用程序首次啟動時所創(chuàng)建的進(jìn)程之間的數(shù)據(jù)傳遞。
[0039]步驟S130、銷毀所述當(dāng)前進(jìn)程。
[0040]在命令行參數(shù)傳遞完畢后將本次創(chuàng)建的當(dāng)前進(jìn)程銷毀掉,保證操作系統(tǒng)中只存在與應(yīng)用程序?qū)?yīng)的一個進(jìn)程。
[0041]應(yīng)用本申請實(shí)施例提供的單進(jìn)程數(shù)據(jù)處理方法,在響應(yīng)應(yīng)用程序啟動請求時,創(chuàng)建與應(yīng)用程序?qū)?yīng)的進(jìn)程,作為當(dāng)前進(jìn)程,該當(dāng)前進(jìn)程包含有命令行參數(shù),查詢是否存在與應(yīng)用程序?qū)?yīng)的消息窗口,若是,則說明在本次啟動應(yīng)用程序之前已經(jīng)啟動過應(yīng)用程序,也即操作系統(tǒng)中存在應(yīng)用程序首次啟動時所創(chuàng)建的進(jìn)程和消息窗口,因此將命令行參數(shù)發(fā)送至查詢到的消息窗口,以供應(yīng)用程序首次啟動時創(chuàng)建的進(jìn)程從消息窗口中讀取并執(zhí)行所述命令行參數(shù),進(jìn)而銷毀當(dāng)前進(jìn)程。本申請的方案利用消息窗口實(shí)現(xiàn)兩個進(jìn)程間數(shù)據(jù)的傳遞,同時保證了操作系統(tǒng)中只有一個與應(yīng)用程序?qū)?yīng)的進(jìn)程,也即保證了單例模式的實(shí)現(xiàn)。
[0042]參見圖2,圖2為本申請實(shí)施例公開的另一種單進(jìn)程數(shù)據(jù)處理方法流程圖。
[0043I 如圖2所示,該方法包括:
[0044]步驟S200、響應(yīng)應(yīng)用程序啟動請求