控制進(jìn)程運(yùn)行的方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種控制進(jìn)程運(yùn)行的方法及裝置。所述方法包括:通過父進(jìn)程中的第一通信程序向由所述父進(jìn)程創(chuàng)建的子進(jìn)程發(fā)送控制命令;通過所述子進(jìn)程中的第二通信程序接收所述控制命令;通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令。采用本發(fā)明提供的控制進(jìn)程運(yùn)行的方法,父進(jìn)程與子進(jìn)程之間的交互不再通過InputStream和OutputStream實(shí)現(xiàn),而是通過第一通信程序與第二通信程序?qū)崿F(xiàn),在第一通信程序與第二通信程序之間可以傳輸各種形式的數(shù)據(jù),不再固定為在InputStream和OutputStream之間傳輸?shù)淖址虼?,父進(jìn)程和子進(jìn)程無(wú)需進(jìn)行文本字符解析。優(yōu)化了父進(jìn)程與子進(jìn)程之間的交互。
【專利說明】
控制進(jìn)程運(yùn)行的方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,具體地,涉及一種控制進(jìn)程運(yùn)行的方法及裝置?!颈尘凹夹g(shù)】
[0002]進(jìn)程是處理器正在執(zhí)行的程序。一個(gè)進(jìn)程可以創(chuàng)建子進(jìn)程,已創(chuàng)建子進(jìn)程的進(jìn)程為父進(jìn)程。父進(jìn)程與子進(jìn)程之間的交互過程是:父進(jìn)程通過InputStream來(lái)讀取子進(jìn)程的輸出字符串,通過OutputStream向子進(jìn)程輸入字符串以控制子進(jìn)程啟動(dòng)或停止,父進(jìn)程控制子進(jìn)程啟動(dòng)后,待子進(jìn)程被執(zhí)行完成之后,通過對(duì)子進(jìn)程輸出的字符串進(jìn)行文本字符解析, 獲得子進(jìn)程的執(zhí)行結(jié)果。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種控制進(jìn)程運(yùn)行的方法及裝置,用以優(yōu)化父進(jìn)程與子進(jìn)程之間的交互。
[0004]為了實(shí)現(xiàn)上述目的,本發(fā)明第一方面提供一種控制進(jìn)程運(yùn)行的方法,應(yīng)用于處理器,所述方法包括:
[0005]通過父進(jìn)程中的第一通信程序向由所述父進(jìn)程創(chuàng)建的子進(jìn)程發(fā)送控制命令;
[0006]通過所述子進(jìn)程中的第二通信程序接收所述控制命令;
[0007]通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令。
[0008]可選地,所述方法還包括:
[0009]通過所述第二通信程序向所述第一通信程序發(fā)送所述子進(jìn)程的狀態(tài)信息。
[0010]可選地,在所述通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令之后,所述方法還包括:
[0011]通過所述第二通信程序向所述第一通信程序發(fā)送執(zhí)行所述控制命令后生成的執(zhí)行結(jié)果。
[0012]可選地,所述控制命令包括以下中的至少一者:暫停所述子進(jìn)程、重啟所述子進(jìn)程、啟動(dòng)所述子進(jìn)程、停止所述子進(jìn)程。
[0013]可選地,所述子進(jìn)程的狀態(tài)信息包括以下中的至少一者:所述子進(jìn)程的運(yùn)行狀態(tài)、 所述子進(jìn)程占用的資源量、所述子進(jìn)程執(zhí)行所述控制命令的進(jìn)度。
[0014]可選地,所述控制命令包括獲取滿足預(yù)定條件的數(shù)據(jù),所述通過所述第二通信程序向所述第一通信程序發(fā)送執(zhí)行所述控制命令后生成的執(zhí)行結(jié)果,包括:
[0015]根據(jù)所述預(yù)定條件,通過所述用戶程序?qū)λ鰣?zhí)行結(jié)果進(jìn)行篩選;[〇〇16]通過所述第二通信程序向所述第一通信程序發(fā)送篩選出的滿足所述預(yù)定條件的數(shù)據(jù)。
[0017]本發(fā)明第二方面提供一種控制進(jìn)程運(yùn)行的裝置,應(yīng)用于處理器,所述裝置包括:
[0018]第一發(fā)送模塊,用于通過父進(jìn)程中的第一通信程序向由所述父進(jìn)程創(chuàng)建的子進(jìn)程發(fā)送控制命令;
[0019]接收模塊,用于通過所述子進(jìn)程中的第二通信程序接收所述控制命令;
[0020]執(zhí)行模塊,用于通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令。
[0021]可選地,所述裝置還包括:
[0022]第二發(fā)送模塊,用于通過所述第二通信程序向所述第一通信程序發(fā)送所述子進(jìn)程的狀態(tài)信息。[〇〇23] 可選地,所述裝置還包括:
[0024]第三發(fā)送模塊,用于在所述通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令之后,通過所述第二通信程序向所述第一通信程序發(fā)送執(zhí)行所述控制命令后生成的執(zhí)行結(jié)果。
[0025]可選地,所述控制命令包括以下中的至少一者:暫停所述子進(jìn)程、重啟所述子進(jìn)程、啟動(dòng)所述子進(jìn)程、停止所述子進(jìn)程。
[0026]可選地,所述子進(jìn)程的狀態(tài)信息包括以下中的至少一者:所述子進(jìn)程的運(yùn)行狀態(tài)、 所述子進(jìn)程占用的資源量、所述子進(jìn)程執(zhí)行所述控制命令的進(jìn)度。
[0027]可選地,所述控制命令包括獲取滿足預(yù)定條件的數(shù)據(jù),所述第三發(fā)送模塊包括:
[0028]篩選子模塊,用于根據(jù)所述預(yù)定條件,通過所述用戶程序?qū)λ鰣?zhí)行結(jié)果進(jìn)行篩選;
[0029]發(fā)送子模塊,用于通過所述第二通信程序向所述第一通信程序發(fā)送篩選出的滿足所述預(yù)定條件的數(shù)據(jù)。[0〇3〇] 通過上述技術(shù)方案,父進(jìn)程與子進(jìn)程之間的交互不再通過Inputstream和 OutputStream實(shí)現(xiàn),而是通過第一通信程序與第二通信程序?qū)崿F(xiàn),在第一通信程序與第二通信程序之間可以傳輸各種形式的數(shù)據(jù),不再固定為在InputStream和OutputStream之間傳輸?shù)淖址?,因此,父進(jìn)程和子進(jìn)程無(wú)需進(jìn)行文本字符解析。優(yōu)化了父進(jìn)程與子進(jìn)程之間的交互。[〇〇31]本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的【具體實(shí)施方式】部分予以詳細(xì)說明?!靖綀D說明】[〇〇32]附圖是用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的【具體實(shí)施方式】一起用于解釋本發(fā)明,但并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
[0033]圖1為本發(fā)明實(shí)施例提供的一種控制進(jìn)程運(yùn)行的方法的流程圖;
[0034]圖2是本發(fā)明實(shí)施例提供的父進(jìn)程與子進(jìn)程組成的通信系統(tǒng)的示意圖;
[0035]圖3為本發(fā)明實(shí)施例提供的一種控制進(jìn)程運(yùn)行的方法的另一流程圖;
[0036]圖4為本發(fā)明實(shí)施例提供的一種控制進(jìn)程運(yùn)行的裝置的框圖?!揪唧w實(shí)施方式】
[0037]以下結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的【具體實(shí)施方式】?jī)H用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
[0038]為優(yōu)化父進(jìn)程與子進(jìn)程之間的交互,使得父進(jìn)程對(duì)子進(jìn)程的控制不限于啟動(dòng)和停止,并使得父進(jìn)程可以實(shí)時(shí)檢測(cè)子進(jìn)程的運(yùn)行狀態(tài),本發(fā)明實(shí)施例提供了一種控制進(jìn)程運(yùn)行的方法。
[0039]請(qǐng)參考圖1,圖1為本發(fā)明實(shí)施例提供的一種控制進(jìn)程運(yùn)行的方法的流程圖,應(yīng)用于處理器,所述方法包括以下步驟:
[0040]步驟S11:通過父進(jìn)程中的第一通信程序向由所述父進(jìn)程創(chuàng)建的子進(jìn)程發(fā)送控制命令;
[0041]步驟S12:通過所述子進(jìn)程中的第二通信程序接收所述控制命令;
[0042]步驟S13:通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令。
[0043]如圖2所示,本發(fā)明實(shí)施例中,子進(jìn)程除包括用戶程序外,在子進(jìn)程中增加了第二通信程序,相應(yīng)地,在父進(jìn)程中增加了第一通信程序,父進(jìn)程與子進(jìn)程之間的通信通過第一通信程序與第二通信程序之間的交互實(shí)現(xiàn)。處理器控制父進(jìn)程中的第一通信程序向子進(jìn)程發(fā)送控制命令,相應(yīng)地,控制子進(jìn)程中的第二通信程序接收控制命令。接著,控制子進(jìn)程中的用戶程序執(zhí)行第二通信程序接收到的控制命令。[〇〇44] 采用上述技術(shù)方案,父進(jìn)程與子進(jìn)程之間的交互不再通過InputStream和 OutputStream實(shí)現(xiàn),而是通過第一通信程序與第二通信程序?qū)崿F(xiàn),在第一通信程序與第二通信程序之間可以傳輸各種形式的數(shù)據(jù),不再固定為在InputStream和OutputStream之間傳輸?shù)淖址?,因此,父進(jìn)程和子進(jìn)程無(wú)需進(jìn)行文本字符解析。優(yōu)化了父進(jìn)程與子進(jìn)程之間的交互。
[0045]可選地,所述控制命令包括以下中的至少一者:暫停所述子進(jìn)程、重啟所述子進(jìn)程、啟動(dòng)所述子進(jìn)程、停止所述子進(jìn)程。
[0046]由于父進(jìn)程與子進(jìn)程之間的通信通過第一通信程序與第二通信程序之間的交互實(shí)現(xiàn),所以可以對(duì)第一通信程序和第二通信程序進(jìn)行設(shè)置,進(jìn)而使得父進(jìn)程可以向子進(jìn)程發(fā)送各種控制命令,包括:暫停子進(jìn)程、重啟子進(jìn)程、啟動(dòng)子進(jìn)程、停止子進(jìn)程??蛇x地,父進(jìn)程還可以向子進(jìn)程發(fā)送其它擴(kuò)展命令,包括:鎖定子進(jìn)程、控制子進(jìn)程進(jìn)入睡眠狀態(tài)、喚醒子進(jìn)程、查詢子進(jìn)程的狀態(tài)信息等。[〇〇47]采用上述技術(shù)方案,借助于由第一通信程序和第二通信程序所形成的通信通道, 父進(jìn)程對(duì)子進(jìn)程的控制更加靈活多變,不再局限于啟動(dòng)和停止。
[0048]可選地,本發(fā)明實(shí)施例提供的控制進(jìn)程的方法還包括:
[0049]通過所述第二通信程序向所述第一通信程序發(fā)送所述子進(jìn)程的狀態(tài)信息。
[0050]可選地,父進(jìn)程也可以通過第一通信程序查詢子進(jìn)程的狀態(tài)信息,然后子進(jìn)程通過第二通信程序向父進(jìn)程發(fā)送子進(jìn)程的狀態(tài)信息。
[0051]可選地,所述子進(jìn)程的狀態(tài)信息包括以下中的至少一者:所述子進(jìn)程的運(yùn)行狀態(tài)、 所述子進(jìn)程占用的資源量、所述子進(jìn)程執(zhí)行所述控制命令的進(jìn)度。
[0052]由于父進(jìn)程與子進(jìn)程之間存在由第一通信程序和第二通信程序所形成的通信通道,所以子進(jìn)程可以通過第二通信程序主動(dòng)地向父進(jìn)程中的第一通信程序發(fā)送子進(jìn)程的狀態(tài)信息,以使得父進(jìn)程獲知子進(jìn)程的狀態(tài)信息。其中,狀態(tài)信息包括:子進(jìn)程的運(yùn)行狀態(tài)、子進(jìn)程占用的資源量、子進(jìn)程執(zhí)行父進(jìn)程發(fā)送的控制命令的進(jìn)度等。[〇〇53]采用上述技術(shù)方案,借助于由第一通信程序和第二通信程序所形成的通信通道, 子進(jìn)程可以主動(dòng)向父進(jìn)程上報(bào)子進(jìn)程的狀態(tài)信息。父進(jìn)程也可以實(shí)時(shí)獲取子進(jìn)程的狀態(tài)信息。
[0054] 可選地,如圖3所示,在所述步驟S13之后,所述方法還包括:
[0055]步驟S14:通過所述第二通信程序向所述第一通信程序發(fā)送執(zhí)行所述控制命令后生成的執(zhí)行結(jié)果。
[0056]在執(zhí)行完步驟S12之后,子進(jìn)程中的用戶程序執(zhí)行父進(jìn)程發(fā)送的控制命令,進(jìn)而生成執(zhí)行結(jié)果。子進(jìn)程所生成的執(zhí)行結(jié)果可以通過第二通信程序發(fā)送給父進(jìn)程中的第一通信程序,使得父進(jìn)程獲知子進(jìn)程執(zhí)行控制命令后生成的執(zhí)行結(jié)果。由于執(zhí)行結(jié)果是通過父進(jìn)程與子進(jìn)程之間的由第一通信程序和第二通信程序所形成的通信通道傳輸,所以執(zhí)行結(jié)果可以以各種形式被傳輸,不必固定為字符串,父進(jìn)程也無(wú)需進(jìn)行文本字符解析??蛇x地,執(zhí)行結(jié)果以對(duì)象的形式進(jìn)行傳輸。
[0057]可選地,所述控制命令包括獲取滿足預(yù)定條件的數(shù)據(jù),所述通過所述第二通信程序向所述第一通信程序發(fā)送執(zhí)行所述控制命令后生成的結(jié)果,包括:
[0058]根據(jù)所述預(yù)定條件,通過所述用戶程序?qū)λ鰣?zhí)行結(jié)果進(jìn)行篩選;
[0059]通過所述第二通信程序向所述第一通信程序發(fā)送篩選出的滿足所述預(yù)定條件的數(shù)據(jù)。
[0060]為了提高傳輸效率,節(jié)約傳輸資源,父進(jìn)程向子進(jìn)程發(fā)送的控制命令可以是獲取滿足預(yù)定條件的數(shù)據(jù),則在通過子進(jìn)程的用戶程序執(zhí)行父進(jìn)程向子進(jìn)程發(fā)送的控制命令后,對(duì)生成的執(zhí)行結(jié)果進(jìn)行篩選,篩選出滿足預(yù)定條件的數(shù)據(jù),然后通過第二通信程序發(fā)送給第一通信程序。
[0061]采用上述技術(shù)方案,在父進(jìn)程與子進(jìn)程之間傳輸?shù)氖亲舆M(jìn)程的執(zhí)行結(jié)果中滿足預(yù)定條件的數(shù)據(jù),子進(jìn)程不必將執(zhí)行結(jié)果全部發(fā)給父進(jìn)程,父進(jìn)程可以獲取子進(jìn)程的執(zhí)行結(jié)果中滿足預(yù)定條件的數(shù)據(jù),提高了傳輸效率,節(jié)約了傳輸資源。
[0062]基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了一種控制進(jìn)程運(yùn)行的裝置,應(yīng)用于處理器,如圖4所示,所述裝置100包括:
[0063]第一發(fā)送模塊121,用于通過父進(jìn)程中的第一通信程序向由所述父進(jìn)程創(chuàng)建的子進(jìn)程發(fā)送控制命令;[〇〇64]接收模塊122,用于通過所述子進(jìn)程中的第二通信程序接收所述控制命令;[〇〇65]執(zhí)行模塊123,用于通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令。[〇〇66] 可選地,所述裝置還包括:
[0067]第二發(fā)送模塊,用于通過所述第二通信程序向所述第一通信程序發(fā)送所述子進(jìn)程的狀態(tài)信息。[〇〇68] 可選地,所述裝置還包括:
[0069]第三發(fā)送模塊,用于在所述通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令之后,通過所述第二通信程序向所述第一通信程序發(fā)送執(zhí)行所述控制命令后生成的執(zhí)行結(jié)果。
[0070]可選地,所述控制命令包括以下中的至少一者:暫停所述子進(jìn)程、重啟所述子進(jìn)程、啟動(dòng)所述子進(jìn)程、停止所述子進(jìn)程。
[0071]可選地,所述子進(jìn)程的狀態(tài)信息包括以下中的至少一者:所述子進(jìn)程的運(yùn)行狀態(tài)、 所述子進(jìn)程占用的資源量、所述子進(jìn)程執(zhí)行所述控制命令的進(jìn)度。
[0072]可選地,所述控制命令包括獲取滿足預(yù)定條件的數(shù)據(jù),所述第三發(fā)送模塊包括:
[0073]篩選子模塊,用于根據(jù)所述預(yù)定條件,通過所述用戶程序?qū)λ鰣?zhí)行結(jié)果進(jìn)行篩選;
[0074]發(fā)送子模塊,用于通過所述第二通信程序向所述第一通信程序發(fā)送篩選出的滿足所述預(yù)定條件的數(shù)據(jù)。[〇〇75]關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。[〇〇76]以上結(jié)合附圖詳細(xì)描述了本發(fā)明的優(yōu)選實(shí)施方式,但是,本發(fā)明并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本發(fā)明的技術(shù)構(gòu)思范圍內(nèi),可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行多種簡(jiǎn)單變型,這些簡(jiǎn)單變型均屬于本發(fā)明的保護(hù)范圍。[〇〇77]另外需要說明的是,在上述【具體實(shí)施方式】中所描述的各個(gè)具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進(jìn)行組合,為了避免不必要的重復(fù),本發(fā)明對(duì)各種可能的組合方式不再另行說明。
[0078]此外,本發(fā)明的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本發(fā)明的思想,其同樣應(yīng)當(dāng)視為本發(fā)明所公開的內(nèi)容。
【主權(quán)項(xiàng)】
1.一種控制進(jìn)程運(yùn)行的方法,其特征在于,應(yīng)用于處理器,所述方法包括:通過父進(jìn)程中的第一通信程序向由所述父進(jìn)程創(chuàng)建的子進(jìn)程發(fā)送控制命令;通過所述子進(jìn)程中的第二通信程序接收所述控制命令;通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:通過所述第二通信程序向所述第一通信程序發(fā)送所述子進(jìn)程的狀態(tài)信息。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述通過所述子進(jìn)程中的用戶程序執(zhí)行 所述控制命令之后,所述方法還包括:通過所述第二通信程序向所述第一通信程序發(fā)送執(zhí)行所述控制命令后生成的執(zhí)行結(jié)果。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述控制命令包括以下中的至少一者:暫 停所述子進(jìn)程、重啟所述子進(jìn)程、啟動(dòng)所述子進(jìn)程、停止所述子進(jìn)程。5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述子進(jìn)程的狀態(tài)信息包括以下中的至少 一者:所述子進(jìn)程的運(yùn)行狀態(tài)、所述子進(jìn)程占用的資源量、所述子進(jìn)程執(zhí)行所述控制命令的進(jìn)度。6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述控制命令包括獲取滿足預(yù)定條件的數(shù) 據(jù),所述通過所述第二通信程序向所述第一通信程序發(fā)送執(zhí)行所述控制命令后生成的執(zhí)行 結(jié)果,包括:根據(jù)所述預(yù)定條件,通過所述用戶程序?qū)λ鰣?zhí)行結(jié)果進(jìn)行篩選;通過所述第二通信程序向所述第一通信程序發(fā)送篩選出的滿足所述預(yù)定條件的數(shù)據(jù)。7.—種控制進(jìn)程運(yùn)行的裝置,其特征在于,應(yīng)用于處理器,所述裝置包括:第一發(fā)送模塊,用于通過父進(jìn)程中的第一通信程序向由所述父進(jìn)程創(chuàng)建的子進(jìn)程發(fā)送 控制命令;接收模塊,用于通過所述子進(jìn)程中的第二通信程序接收所述控制命令;執(zhí)行模塊,用于通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括:第二發(fā)送模塊,用于通過所述第二通信程序向所述第一通信程序發(fā)送所述子進(jìn)程的狀 態(tài)信息。9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括:第三發(fā)送模塊,用于在所述通過所述子進(jìn)程中的用戶程序執(zhí)行所述控制命令之后,通 過所述第二通信程序向所述第一通信程序發(fā)送執(zhí)行所述控制命令后生成的執(zhí)行結(jié)果。10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述控制命令包括以下中的至少一者:暫 停所述子進(jìn)程、重啟所述子進(jìn)程、啟動(dòng)所述子進(jìn)程、停止所述子進(jìn)程。11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述子進(jìn)程的狀態(tài)信息包括以下中的至 少一者:所述子進(jìn)程的運(yùn)行狀態(tài)、所述子進(jìn)程占用的資源量、所述子進(jìn)程執(zhí)行所述控制命令 的進(jìn)度。12.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述控制命令包括獲取滿足預(yù)定條件的 數(shù)據(jù),所述第三發(fā)送模塊包括:篩選子模塊,用于根據(jù)所述預(yù)定條件,通過所述用戶程序?qū)λ鰣?zhí)行結(jié)果進(jìn)行篩選;發(fā)送子模塊,用于通過所述第二通信程序向所述第一通信程序發(fā)送篩選出的滿足所述 預(yù)定條件的數(shù)據(jù)。
【文檔編號(hào)】G06F9/54GK106095602SQ201610459431
【公開日】2016年11月9日
【申請(qǐng)日】2016年6月22日
【發(fā)明人】郝健, 于洋, 王冰倩, 沈牧溪
【申請(qǐng)人】東軟集團(tuán)股份有限公司