一種驅動程序加載方法及裝置制造方法
【專利摘要】本申請提供了一種驅動程序加載方法及裝置,應用于安裝有多個驅動程序的智能設備,該方法包括當接收到加載命令時,創建主線程,并觸發該主線程判斷該多個驅動程序是否具有預設并行加載標識,當驅動程序具有預設并行加載標識時,創建子線程,并觸發該子線程加載該具有預設并行加載標識的驅動程序,若驅動程序未具有預設并行加載標識時,則觸發主線程加載該未具有預設并行加載標識的驅動程序。與現有的主線程按照預設加載順序,依次串行加載各個驅動程序的加載方式相比,本發明為具有預設并行加載標識的驅動程序創建單獨的子線程,子線程用于并行加載具有預設并行加載標識的驅動程序,從而可以節省記載時間,加載效率較高。
【專利說明】一種驅動程序加載方法及裝置
【技術領域】
[0001]本發明涉及驅動管理【技術領域】,尤其是一種驅動程序加載方法及裝置。
【背景技術】
[0002]驅動程序,是一種智能設備與硬件設備間的特殊程序,其作為硬件設備的接口,提供給智能設備的操作系統,以實現操作系統對硬件設備的控制。其中,智能設備可以是計算機、PAD、手機等,硬件設備如聲卡、顯卡、攝像頭等。
[0003]智能設備在開機并加載操作系統后,需要加載各個硬件設備的驅動程序。然而,現有技術中的設備驅動加載速度較慢。
【發明內容】
[0004]有鑒于此,本發明實施例提供了一種驅動程序加載方法及裝置,用以解決現有技術中驅動程序加載速度較慢的技術問題。為實現所述目的,本發明提供的技術方案如下:
[0005]一種驅動程序加載方法,包括:
[0006]當接收到加載命令時,創建主線程;
[0007]觸發所述主線程判斷各個驅動程序是否具有預設并行加載標識;
[0008]當第一驅動程序具有預設并行加載標識時,創建子線程,并觸發所述子線程加載所述第一驅動程序;
[0009]當第二驅動程序未具有預設并行加載標識時,觸發所述主線程加載所述第二驅動程序。
[0010]可選地,在所述創建子線程,并觸發所述子線程加載所述第一驅動程序之前,還包括:
[0011]判斷所述第一驅動程序是否具有相關聯的第三驅動程序;所述第三驅動程序為與所述第一驅動程序具有預設加載先后順序的驅動程序,且所述第三驅動程序的加載順序先于所述第一驅動程序;
[0012]若是,監測所述第三驅動程序是否加載完畢,當監測結果為是時,創建子線程,并觸發所述子線程加載所述第一驅動程序;
[0013]若否,創建子線程,并觸發所述子線程加載所述第一驅動程序。
[0014]可選地,在所述創建子線程之后,及觸發所述子線程加載所述第一驅動程序之前,還包括:
[0015]觸發所述子線程判斷所述第一驅動程序是否具有相關聯的第三驅動程序;所述第三驅動程序為與所述第一驅動程序具有預設加載先后順序的驅動程序,且所述第三驅動程序的加載順序先于所述第一驅動程序;
[0016]若是,觸發所述子線程監測所述第三驅動程序是否加載完畢,當監測結果為是時,觸發所述子線程加載所述第一驅動程序;
[0017]若否,觸發所述子線程加載所述第一驅動程序。
[0018]可選地,驅動程序的預設并行加載標識的預設過程包括:
[0019]獲取多個驅動程序;
[0020]判斷各個所述驅動程序具有的相關聯的第三驅動程序的個數是否低于預設個數值,獲得每個所述驅動程序各自對應的第一判斷結果;
[0021]判斷各個所述驅動程序的加載時間是否超過預設時間值,獲得每個所述第二驅動程序各自對應的第二判斷結果;
[0022]當驅動程序的第一判斷結果及第二判斷結果均為是時,為該驅動程序設置并行加載標識。
[0023]可選地,所述觸發所述主線程加載所述第二驅動程序包括:
[0024]觸發所述主線程創建加載環境,并將所述第二驅動程序加載至所述加載環境中。
[0025]本申請還提供了一種驅動程序加載裝置,包括:
[0026]主線程創建單元,用于當接收到加載命令時,創建主線程;
[0027]標識判斷單元,用于觸發所述主線程判斷各個驅動程序是否具有預設并行加載標識;當第一驅動程序具有預設并行加載標識時,觸發并行加載單元;當第二驅動程序未具有預設并行加載標識時,觸發串行加載單元;
[0028]并行加載單元,用于創建子線程,并觸發所述子線程加載所述第一驅動程序;
[0029]串行加載單元,用于觸發所述主線程加載所述第二驅動程序。
[0030]可選地,還包括:
[0031]第一判斷單元,用于在創建子線程,并觸發所述子線程加載所述第一驅動程序之前,判斷所述第一驅動程序是否具有相關聯的第三驅動程序;所述第三驅動程序為與所述第一驅動程序具有預設加載先后順序的驅動程序,且所述第三驅動程序的加載順序先于所述第一驅動程序;若是,觸發第一監測單元,若否,觸發并行加載單元;
[0032]第一監測單元,用于監測所述第三驅動程序是否加載完畢,當監測結果為是時,觸發并行加載單元。
[0033]可選地,還包括:
[0034]第二判斷單元,用于在所述并行加載單元創建子線程之后,及觸發所述子線程加載所述第一驅動程序之前,觸發所述子線程判斷所述第一驅動程序是否具有相關聯的第三驅動程序;若是,觸發第二監測單元,否則,控制所述并行加載單元觸發所述子線程加載所述第一驅動程序;
[0035]第二監測單元,用于觸發所述子線程監測所述第三驅動程序是否加載完畢,當監測結果為是時,控制所述并行加載單元觸發所述子線程加載所述第一驅動程序。
[0036]可選地,還包括:標識預設單元,用于預先設置驅動程序的預設并行加載標識;其中,所述標識預設單元包括:
[0037]程序獲取子單元,用于獲取多個驅動程序;
[0038]個數判斷子單元,用于判斷各個所述驅動程序具有的相關聯的第三驅動程序的個數是否低于預設個數值,獲得每個所述驅動程序各自對應的第一判斷結果;
[0039]時間判斷子單元,用于判斷各個所述驅動程序的加載時間是否超過預設時間值,獲得每個所述第二驅動程序各自對應的第二判斷結果;
[0040]標識設置子單元,用于當驅動程序的第一判斷結果及第二判斷結果均為是時,為該驅動程序設置并行加載標識。
[0041]可選地,所述串行加載單元包括:
[0042]串行加載子單元,用于觸發所述主線程創建加載環境,并將所述第二驅動程序加載至所述加載環境中。
[0043]本發明提供了驅動程序加載方法及裝置,應用于安裝有多個驅動程序的智能設備,該方法包括當接收到加載命令時,創建主線程,并觸發該主線程判斷該多個驅動程序是否具有預設并行加載標識,當驅動程序具有預設并行加載標識時,創建子線程,并觸發該子線程加載該具有預設并行加載標識的驅動程序,若驅動程序未具有預設并行加載標識時,則觸發主線程加載該未具有預設并行加載標識的驅動程序。與現有的主線程按照預設加載順序,依次串行加載各個驅動程序的加載方式相比,本發明為具有預設并行加載標識的驅動程序創建單獨的子線程,子線程用于并行加載具有預設并行加載標識的驅動程序,從而可以節省記載時間,加載效率較高。
【專利附圖】
【附圖說明】
[0044]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0045]圖1為本發明實施例提供的驅動程序加載方法的流程圖;
[0046]圖2為本發明實施例提供的驅動程序加載示意圖;
[0047]圖3為本發明另一實施例提供的驅動程序加載方法的流程圖;
[0048]圖4為本發明又一實施例提供的驅動程序加載方法的流程圖;
[0049]圖5為本發明實施例提供的驅動程序加載裝置的結構框圖;
[0050]圖6為本發明另一實施例提供的驅動程序加載裝置的結構框圖;
[0051]圖7為本發明又一實施例提供的驅動程序加載裝置的結構框圖。
【具體實施方式】
[0052]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0053]參照圖1,其示出了本發明實施例提供的驅動程序加載方法的流程,具體包括以下步驟:
[0054]步驟SlOl:當接收到加載命令時,創建主線程。
[0055]其中,當智能設備需要啟動時,內部生成加載命令,該加載命令發送至本實施例的執行模塊中,執行模塊接收到該加載命令后,可知需要加載智能設備中的各個驅動程序,則首先創建主線程。
[0056]步驟S102:觸發所述主線程判斷各個驅動程序是否具有預設并行加載標識。當第一驅動程序具有預設并行加載標識時,執行步驟S103,當第二驅動程序未具有預設并行加載標識時,執行步驟S104。
[0057]智能設備中安裝有多個驅動程序,在本實施例執行前,預先為多個驅動程序中的一些驅動程序設置并行加載標識,進而本步驟執行時,主線程可判斷各個驅動程序是否具有并行加載標識。需要說明的是,可以根據不同的實際需求,為不同的驅動程序設置并行加載標識,其中,具體的一種設置方式可參照下文描述。
[0058]本步驟中,主線程需要判斷每個驅動程序是否具有并行加載標識,需要說明的是,本步驟可以與步驟S103及步驟S104交叉進行。因為,本步驟的判斷過程可以是依次判斷,即首先判斷第一個驅動程序是否具有預設并行加載標識,若具有,則執行步驟S103,然后,主線程繼續執行對下一個驅動程序的判斷,若未具有,則執行步驟S104,然后,繼續執行對下一個驅動程序的判斷。以此類推,直至最后一個驅動程序。
[0059]步驟S103:創建子線程,并觸發所述子線程加載所述第一驅動程序。
[0060]其中,第一驅動程序指的是具有預設并行加載標識的驅動程序。若步驟S102對某個驅動程序的判斷結果為是,則創建子線程,并觸發子線程加載該驅動程序。需要說明的是,當子線程加載第一驅動程序的同時,主線程在判斷驅動程序是否具有預設并行加載標識,或者主線程在加載并未具有并行加載標識的驅動程序。
[0061]需要說明,當主線程判斷出一個第一驅動程序后,則為該驅動程序創建一個子線程,用于加載第一驅動程序,也就是說,每個第一驅動程序均對應一個子線程,各個子線程分別加載各自對應的第一驅動程序。可以看出,具有并行加載標識的多個驅動程序為并行加載,并不需要按照現有中的預設加載順序進行串行加載,從而可以降低總體的加載時間。
[0062]步驟S104:觸發所述主線程加載所述第二驅動程序。
[0063]其中,第二驅動程序指的是并不具有預設并行加載標識的驅動程序。在現有加載方式中,各個驅動程序為串行加載,即主線程按照預設順序,依次記載每個驅動程序。若步驟S102對某個驅動程序的判斷結果為否,則仍然由主線程加載該驅動程序,加載完畢后,繼續返回步驟S102,即繼續由主線程判斷下一驅動程序是否具有預設并行加載標識。
[0064]由以上的技術方案可知,本實施例提供的驅動程序加載方法,應用于安裝有多個驅動程序的智能設備,該方法包括當接收到加載命令時,創建主線程,并觸發該主線程判斷該多個驅動程序是否具有預設并行加載標識,當驅動程序具有預設并行加載標識時,創建子線程,并觸發該子線程加載該具有預設并行加載標識的驅動程序,若驅動程序未具有預設并行加載標識時,則觸發主線程加載該未具有預設并行加載標識的驅動程序。
[0065]如圖2所示,本實施例為具有預設并行加載標識的驅動程序創建單獨的子線程,子線程用于并行加載具有預設并行加載標識的驅動程序,從而使得具有預設并行加載標識的驅動程序可以與主線程的判斷或加載過程同時進行。與現有的主線程按照預設加載順序,依次串行加載各個驅動程序的加載方式相比,本實施例提供的驅動程序加載方法可以節省記載時間,加載效率較高。
[0066]在現實情況中,智能設備中安裝的多個驅動程序往往存在相互關聯的情況,即某些個驅動程序間具有先后加載順序。面對這種應用場景,本發明另一實施例提供了驅動程序的加載方法,在對具有預設并行加載標識的驅動程序進行并行加載時,判斷其對應的關聯程序是否已加載完畢。具體地,如圖3所示,在上述實施例的步驟S103之前,還包括:步驟S105及步驟S106。
[0067]步驟S105:判斷所述第一驅動程序是否具有相關聯的第三驅動程序;所述第三驅動程序為與所述第一驅動程序具有預設加載先后順序的驅動程序,且所述第三驅動程序的加載順序先于所述第一驅動程序;若是,執行步驟S106 ;若否,執行步驟S103創建子線程,并觸發所述子線程加載所述第一驅動程序。
[0068]本實施例中,智能設備安裝的多個驅動程序中,某些驅動程序之間具有預設加載先后順序,該預設加載先后順序是由各個驅動程序自身的性質決定的,例如,攝像頭驅動程序在被加載前,需要加載與存儲功能相關的驅動程序。該預設加載先后順序可以記錄在相關聯的驅動程序的設備文件中,例如,驅動程序I與驅動程序4之間具有預設加載先后順序,且驅動程序4的加載順序先于驅動程序1,則在驅動程序I的設備文件中記錄驅動程序4的標識,用以表明在加載驅動程序I前,需要加載驅動程序4。
[0069]另外,在該示例中,若驅動程序I為第一驅動程序,即具有預設并行加載標識的驅動程序,按照上述對第三驅動程序的說明,可知驅動程序4為第三驅動程序。
[0070]若本步驟判斷得出某個或某些第一驅動程序具有相關聯的第三驅動程序,則執行步驟S106。否則,直接創建子線程,利用該子線程加載該第一驅動程序。
[0071]步驟S106:監測所述第三驅動程序是否加載完畢,當監測結果為是時,執行步驟S103創建子線程,并觸發所述子線程加載所述第一驅動程序。
[0072]實時監測第三驅動程序是否已經加載完畢,該驅動程序可能是由主線程加載的驅動程序,或者可能是由子線程加載的驅動程序,不論是何種的加載方式,均需要等待該關聯的第三驅動程序加載完畢,然后再加載步驟S105中的該第一驅動程序。
[0073]若某些驅動程序具有預設先后加載順序,但這些驅動程序被設置上預設并行加載標識,按照上一實施例的加載方法,則可能導致加載失敗。為此,本實施例中,在創建子線程加載某個具有預設并行加載的驅動程序之前,首先判斷該驅動程序是否具有相關聯的驅動程序,若沒有,則直接創建子線程并進行加載,若有,則需要等待該相關聯的驅動程序加載完畢,再創建子線程進行加載,從而解決了上述加載失敗的問題。
[0074]需要說明的是,本實施例中的其他步驟參照上一實施例,此處并不做贅述。
[0075]另外,監測第三驅動程序是否加載完畢并一定是由本發明實施例的執行模塊完成的,還可以是由子線程獨立完成的。如圖4所示,具體的實現方式中包括:
[0076]步驟S201:當接收到加載命令時,創建主線程。
[0077]步驟S202:觸發主線程判斷各個驅動程序是否具有預設并行加載標識。當第一驅動程序具有預設并行加載標識時,執行步驟S203 ;當第二驅動程序未具有預設并行加載標識時,執行步驟S207。
[0078]步驟S203:創建子線程。
[0079]步驟S204:觸發所述子線程判斷所述第一驅動程序是否具有相關聯的第三驅動程序;所述第三驅動程序為與所述第一驅動程序具有預設加載先后順序的驅動程序,且所述第三驅動程序的加載順序先于所述第一驅動程序;若是,執行步驟S205 ;否則,執行步驟S206。
[0080]步驟S205:觸發所述子線程監測所述第三驅動程序是否加載完畢;當監測結果為是時,執行步驟S206。
[0081]步驟S206:觸發所述子線程加載所述第一驅動程序。
[0082]步驟S207:觸發主線程加載第二驅動程序。
[0083]需要說明,本實施例中的步驟S201、步驟S202、步驟S203、步驟S206及步驟S207的說明可參照上述各個實施例,此處并不做贅述。
[0084]本實施例中,將監測相關聯的驅動程序是否加載完畢的過程交由子線程完成,因此,在創建子線程之后,可以立即觸發主線程判斷下一驅動程序是否具有預設并行加載標識,使得監測過程與主線程的判斷過程并行執行,進一步節省加載時間。
[0085]上述各個實施例在執行前,需要預先為多個驅動程序中的某些驅動程序設置并行加載標識,其中,該預先設置并行加載標識的過程包括以下步驟:
[0086]步驟S301:獲取多個驅動程序。
[0087]其中,獲取智能設備中安裝的多個驅動程序,具體獲取到的是各個驅動程序的設備文件,該各個設備文件中,可以記錄有驅動程序是否具有相關聯的驅動程序。
[0088]步驟S302:判斷各個所述驅動程序具有的相關聯的第三驅動程序的個數是否低于預設個數值,獲得每個所述驅動程序各自對應的第一判斷結果。
[0089]本步驟中,分別獲取每個驅動程序各自具有的相關聯的驅動程序(即第三驅動程序)的個數,并分別判斷每個驅動程序的第三驅動程序的個數是否超過預設個數值。其中,獲取個數的方式與設備文件的記錄方式相關,若設備文件中記錄有該驅動程序對應的第三驅動程序的總個數,則直接獲取該總個數,若設備文件中只是記錄該驅動程序對應的各個第三驅動程序的標識,則需要統計總個數。
[0090]例如,驅動程序I的設備文件中,記錄的相關聯的驅動程序分別為驅動程序3、驅動程序6及驅動程序8,則統計出該驅動程序I的第三驅動程序的個數為3。
[0091]需要說明的是,若某個驅動程序沒有相關聯的驅動程序時,則該驅動程序對應的第三驅動程序個數為零。另外,預設個數值可以是根據實際需要設置的數值,本發明并不做限定。
[0092]步驟S303:判斷各個所述驅動程序的加載時間是否超過預設時間值,獲得每個所述第二驅動程序各自對應的第二判斷結果。
[0093]每個驅動程序具有各自的加載時間,即該驅動程序加載到系統中所用的時間。
[0094]步驟S304:當驅動程序的第一判斷結果及第二判斷結果均為是時,為該驅動程序設置并行加載標識。
[0095]其中,多個驅動程序中,若某個驅動程序對應的兩個判斷結果均為是,則表明該驅動程序相關聯的驅動程序較少,并且該驅動程序的加載時間較長,則為該驅動程序設置并行加載標識。經過上述設置過程,則多個驅動程序中的某些驅動程序具有并行加載標識,從而可以利用上述各個實施例提供的方法將并行加載該多個驅動程序。
[0096]需要說明的是,若某個驅動程序的第一判斷結果或第二判斷結果為否,或者兩者均為否時,則并不為該驅動程序設置并行加載標識。
[0097]需要說明的是,上述各個實施例中的觸發動作的實現方式可以是向被觸發者發送一個指令,當被觸發者接收到該指令后,進而執行相應動作。
[0098]在上述各個實施例中,觸發主線程加載所述第二驅動程序的方式可以是:首先觸發主線程創建加載環境,進而將第二驅動程序加載至該加載環境中,完成對第二驅動程序的加載。另外,觸發子線程加載第一驅動程序的方式可以參照主線程。
[0099]下面對本發明實施例提供的驅動程序加載裝置進行介紹,需要說明的是,下文中有關驅動程序加載裝置的說明可參照上文的驅動程序加載方法,此處并不做贅述。
[0100]參照圖5,其示出了本發明實施例提供的驅動程序加載裝置的結構,具體包括:主線程創建單元100、標識判斷單元200、并行加載單元300及串行加載單元400 ;其中:
[0101]主線程創建單元100,用于當接收到加載命令時,創建主線程;
[0102]標識判斷單元200,用于觸發所述主線程判斷各個驅動程序是否具有預設并行加載標識;當第一驅動程序具有預設并行加載標識時,觸發并行加載單元300 ;當第二驅動程序未具有預設并行加載標識時,觸發串行加載單元400 ;
[0103]并行加載單元300,用于創建子線程,并觸發所述子線程加載所述第一驅動程序;
[0104]串行加載單元400,用于觸發所述主線程加載所述第二驅動程序。
[0105]由以上的技術方案可知,本實施例提供的驅動程序加載裝置,應用于安裝有多個驅動程序的智能設備,當接收到加載命令時,主線程創建單元100創建主線程,標識判斷單元200觸發該主線程判斷該多個驅動程序是否具有預設并行加載標識,當驅動程序具有預設并行加載標識時,并行加載單元300創建子線程,并觸發該子線程加載該具有預設并行加載標識的驅動程序,若驅動程序未具有預設并行加載標識時,串行加載單元400觸發主線程加載該未具有預設并行加載標識的驅動程序。
[0106]本實施例為具有預設并行加載標識的驅動程序創建單獨的子線程,子線程用于并行加載具有預設并行加載標識的驅動程序。與現有的主線程串行加載各個驅動程序的加載方式相比,本實施例提供的驅動程序加載裝置可以節省記載時間,加載效率較高。
[0107]可選地,如圖6所示,上述驅動程序加載裝置,還包括:第一判斷單元500及第一監測單元600 ;其中:
[0108]第一判斷單元500,用于在創建子線程,并觸發所述子線程加載所述第一驅動程序之前,判斷所述第一驅動程序是否具有相關聯的第三驅動程序;所述第三驅動程序為與所述第一驅動程序具有預設加載先后順序的驅動程序,且所述第三驅動程序的加載順序先于所述第一驅動程序;若是,觸發第一監測單元,若否,觸發并行加載單元;
[0109]第一監測單元600,用于監測所述第三驅動程序是否加載完畢,當監測結果為是時,觸發并行加載單元。
[0110]可選地,上述的驅動程序加載裝置,還包括:
[0111]第二判斷單元,用于在所述并行加載單元創建子線程之后,及觸發所述子線程加載所述第一驅動程序之前,觸發所述子線程判斷所述第一驅動程序是否具有相關聯的第三驅動程序;若是,觸發第二監測單元,否則,控制所述并行加載單元觸發所述子線程加載所述第一驅動程序。
[0112]第二監測單元,用于觸發所述子線程監測所述第三驅動程序是否加載完畢,當監測結果為是時,控制所述并行加載單元觸發所述子線程加載所述第一驅動程序。
[0113]需要說明的是,第二判斷單元分別與第二監測單元及并行加載單元相連,當并行加載單元創建子進程后,觸發第二判斷單元執行,當第二判斷單元的判斷結果為是時,觸發第二監測單元,當第二判斷單元的判斷結果為否時,控制并行加載單元觸發子線程加載第一驅動程序。另外,第二監測單元也同樣需要與并行加載單元相連,當第二監測單元的判斷結果為是時,則控制并行加載單元觸發子線程加載第一驅動程序。
[0114]需要說明,控制并行加載單元觸發子線程加載第一驅動程序的方式,可以是向并行加載單元發送一個指令,當并行加載單元接收到該指令后,自動執行觸發子線程加載第一驅動程序。
[0115]可選地,如圖7所示,上述的驅動程序加載裝置,還包括:標識預設單元700,用于預先設置驅動程序的預設并行加載標識;其中,所述標識預設單元700包括:
[0116]程序獲取子單元701,用于獲取多個驅動程序;
[0117]個數判斷子單元702,用于判斷各個所述驅動程序具有的相關聯的第三驅動程序的個數是否低于預設個數值,獲得每個所述驅動程序各自對應的第一判斷結果;
[0118]時間判斷子單元703,用于判斷各個所述驅動程序的加載時間是否超過預設時間值,獲得每個所述第二驅動程序各自對應的第二判斷結果;
[0119]標識設置子單元704,用于當驅動程序的第一判斷結果及第二判斷結果均為是時,為該驅動程序設置并行加載標識。
[0120]可選地,上述驅動程序加載裝置中串行加載單元400包括:
[0121]串行加載子單元,用于觸發所述主線程創建加載環境,并將所述第二驅動程序加載至所述加載環境中。
[0122]需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0123]還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括上述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0124]對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權利要求】
1.一種驅動程序加載方法,其特征在于,包括: 當接收到加載命令時,創建主線程; 觸發所述主線程判斷各個驅動程序是否具有預設并行加載標識; 當第一驅動程序具有預設并行加載標識時,創建子線程,并觸發所述子線程加載所述第一驅動程序; 當第二驅動程序未具有預設并行加載標識時,觸發所述主線程加載所述第二驅動程序。
2.根據權利要求1所述的驅動程序加載方法,其特征在于,在所述創建子線程,并觸發所述子線程加載所述第一驅動程序之前,還包括: 判斷所述第一驅動程序是否具有相關聯的第三驅動程序;所述第三驅動程序為與所述第一驅動程序具有預設加載先后順序的驅動程序,且所述第三驅動程序的加載順序先于所述第一驅動程序; 若是,監測所述第三驅動程序是否加載完畢,當監測結果為是時,創建子線程,并觸發所述子線程加載所述第一驅動程序; 若否,創建子線程,并觸發所述子線程加載所述第一驅動程序。
3.根據權利要求1所述的驅動程序加載方法,其特征在于,在所述創建子線程之后,及觸發所述子線程加載所述第一驅動程序之前,還包括: 觸發所述子線程判斷所述第一驅動程序是否具有相關聯的第三驅動程序;所述第三驅動程序為與所述第一驅動程序具有預設加載先后順序的驅動程序,且所述第三驅動程序的加載順序先于所述第一驅動程序; 若是,觸發所述子線程監測所述第三驅動程序是否加載完畢,當監測結果為是時,觸發所述子線程加載所述第一驅動程序; 若否,觸發所述子線程加載所述第一驅動程序。
4.根據權利要求1所述的驅動程序加載方法,其特征在于,驅動程序的預設并行加載標識的預設過程包括: 獲取多個驅動程序; 判斷各個所述驅動程序具有的相關聯的第三驅動程序的個數是否低于預設個數值,獲得每個所述驅動程序各自對應的第一判斷結果; 判斷各個所述驅動程序的加載時間是否超過預設時間值,獲得每個所述第二驅動程序各自對應的第二判斷結果; 當驅動程序的第一判斷結果及第二判斷結果均為是時,為該驅動程序設置并行加載標識。
5.根據權利要求1所述的驅動程序加載方法,其特征在于,所述觸發所述主線程加載所述第二驅動程序包括: 觸發所述主線程創建加載環境,并將所述第二驅動程序加載至所述加載環境中。
6.一種驅動程序加載裝置,其特征在于,包括: 主線程創建單元,用于當接收到加載命令時,創建主線程; 標識判斷單元,用于觸發所述主線程判斷各個驅動程序是否具有預設并行加載標識;當第一驅動程序具有預設并行加載標識時,觸發并行加載單元;當第二驅動程序未具有預設并行加載標識時,觸發串行加載單元; 并行加載單元,用于創建子線程,并觸發所述子線程加載所述第一驅動程序; 串行加載單元,用于觸發所述主線程加載所述第二驅動程序。
7.根據權利要求6所述的驅動程序加載裝置,其特征在于,還包括: 第一判斷單元,用于在創建子線程,并觸發所述子線程加載所述第一驅動程序之前,判斷所述第一驅動程序是否具有相關聯的第三驅動程序;所述第三驅動程序為與所述第一驅動程序具有預設加載先后順序的驅動程序,且所述第三驅動程序的加載順序先于所述第一驅動程序;若是,觸發第一監測單元,若否,觸發并行加載單元; 第一監測單元,用于監測所述第三驅動程序是否加載完畢,當監測結果為是時,觸發并行加載單元。
8.根據權利要求6所述的驅動程序加載裝置,其特征在于,還包括: 第二判斷單元,用于在所述并行加載單元創建子線程之后,及觸發所述子線程加載所述第一驅動程序之前,觸發所述子線程判斷所述第一驅動程序是否具有相關聯的第三驅動程序;若是,觸發第二監測單元,否則,控制所述并行加載單元觸發所述子線程加載所述第一驅動程序; 第二監測單元,用于觸發所述子線程監測所述第三驅動程序是否加載完畢,當監測結果為是時,控制所述并行加載單元觸發所述子線程加載所述第一驅動程序。
9.根據權利要求6所述的驅動程序加載裝置,其特征在于,還包括:標識預設單元,用于預先設置驅動程序的預設并行加載標識;其中,所述標識預設單元包括: 程序獲取子單元,用于獲取多個驅動程序; 個數判斷子單元,用于判斷各個所述驅動程序具有的相關聯的第三驅動程序的個數是否低于預設個數值,獲得每個所述驅動程序各自對應的第一判斷結果; 時間判斷子單元,用于判斷各個所述驅動程序的加載時間是否超過預設時間值,獲得每個所述第二驅動程序各自對應的第二判斷結果; 標識設置子單元,用于當驅動程序的第一判斷結果及第二判斷結果均為是時,為該驅動程序設置并行加載標識。
10.根據權利要求6所述的驅動程序加載裝置,其特征在于,所述串行加載單元包括: 串行加載子單元,用于觸發所述主線程創建加載環境,并將所述第二驅動程序加載至所述加載環境中。
【文檔編號】G06F9/445GK104360889SQ201410743475
【公開日】2015年2月18日 申請日期:2014年12月8日 優先權日:2014年12月8日
【發明者】張林浩, 王留欣 申請人:中科創達軟件股份有限公司