CN104360889A - 一种驱动程序加载方法及装置 - Google Patents
一种驱动程序加载方法及装置 Download PDFInfo
- Publication number
- CN104360889A CN104360889A CN201410743475.XA CN201410743475A CN104360889A CN 104360889 A CN104360889 A CN 104360889A CN 201410743475 A CN201410743475 A CN 201410743475A CN 104360889 A CN104360889 A CN 104360889A
- Authority
- CN
- China
- Prior art keywords
- driver
- thread
- loaded
- loading
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
- Charge And Discharge Circuits For Batteries Or The Like (AREA)
Abstract
本申请提供了一种驱动程序加载方法及装置,应用于安装有多个驱动程序的智能设备,该方法包括当接收到加载命令时,创建主线程,并触发该主线程判断该多个驱动程序是否具有预设并行加载标识,当驱动程序具有预设并行加载标识时,创建子线程,并触发该子线程加载该具有预设并行加载标识的驱动程序,若驱动程序未具有预设并行加载标识时,则触发主线程加载该未具有预设并行加载标识的驱动程序。与现有的主线程按照预设加载顺序,依次串行加载各个驱动程序的加载方式相比,本发明为具有预设并行加载标识的驱动程序创建单独的子线程,子线程用于并行加载具有预设并行加载标识的驱动程序,从而可以节省记载时间,加载效率较高。
Description
技术领域
本发明涉及驱动管理技术领域,尤其是一种驱动程序加载方法及装置。
背景技术
驱动程序,是一种智能设备与硬件设备间的特殊程序,其作为硬件设备的接口,提供给智能设备的操作系统,以实现操作系统对硬件设备的控制。其中,智能设备可以是计算机、PAD、手机等,硬件设备如声卡、显卡、摄像头等。
智能设备在开机并加载操作系统后,需要加载各个硬件设备的驱动程序。然而,现有技术中的设备驱动加载速度较慢。
发明内容
有鉴于此,本发明实施例提供了一种驱动程序加载方法及装置,用以解决现有技术中驱动程序加载速度较慢的技术问题。为实现所述目的,本发明提供的技术方案如下:
一种驱动程序加载方法,包括:
当接收到加载命令时,创建主线程;
触发所述主线程判断各个驱动程序是否具有预设并行加载标识;
当第一驱动程序具有预设并行加载标识时,创建子线程,并触发所述子线程加载所述第一驱动程序;
当第二驱动程序未具有预设并行加载标识时,触发所述主线程加载所述第二驱动程序。
可选地,在所述创建子线程,并触发所述子线程加载所述第一驱动程序之前,还包括:
判断所述第一驱动程序是否具有相关联的第三驱动程序;所述第三驱动程序为与所述第一驱动程序具有预设加载先后顺序的驱动程序,且所述第三驱动程序的加载顺序先于所述第一驱动程序;
若是,监测所述第三驱动程序是否加载完毕,当监测结果为是时,创建子线程,并触发所述子线程加载所述第一驱动程序;
若否,创建子线程,并触发所述子线程加载所述第一驱动程序。
可选地,在所述创建子线程之后,及触发所述子线程加载所述第一驱动程序之前,还包括:
触发所述子线程判断所述第一驱动程序是否具有相关联的第三驱动程序;所述第三驱动程序为与所述第一驱动程序具有预设加载先后顺序的驱动程序,且所述第三驱动程序的加载顺序先于所述第一驱动程序;
若是,触发所述子线程监测所述第三驱动程序是否加载完毕,当监测结果为是时,触发所述子线程加载所述第一驱动程序;
若否,触发所述子线程加载所述第一驱动程序。
可选地,驱动程序的预设并行加载标识的预设过程包括:
获取多个驱动程序;
判断各个所述驱动程序具有的相关联的第三驱动程序的个数是否低于预设个数值,获得每个所述驱动程序各自对应的第一判断结果;
判断各个所述驱动程序的加载时间是否超过预设时间值,获得每个所述第二驱动程序各自对应的第二判断结果;
当驱动程序的第一判断结果及第二判断结果均为是时,为该驱动程序设置并行加载标识。
可选地,所述触发所述主线程加载所述第二驱动程序包括:
触发所述主线程创建加载环境,并将所述第二驱动程序加载至所述加载环境中。
本申请还提供了一种驱动程序加载装置,包括:
主线程创建单元,用于当接收到加载命令时,创建主线程;
标识判断单元,用于触发所述主线程判断各个驱动程序是否具有预设并行加载标识;当第一驱动程序具有预设并行加载标识时,触发并行加载单元;当第二驱动程序未具有预设并行加载标识时,触发串行加载单元;
并行加载单元,用于创建子线程,并触发所述子线程加载所述第一驱动程序;
串行加载单元,用于触发所述主线程加载所述第二驱动程序。
可选地,还包括:
第一判断单元,用于在创建子线程,并触发所述子线程加载所述第一驱动程序之前,判断所述第一驱动程序是否具有相关联的第三驱动程序;所述第三驱动程序为与所述第一驱动程序具有预设加载先后顺序的驱动程序,且所述第三驱动程序的加载顺序先于所述第一驱动程序;若是,触发第一监测单元,若否,触发并行加载单元;
第一监测单元,用于监测所述第三驱动程序是否加载完毕,当监测结果为是时,触发并行加载单元。
可选地,还包括:
第二判断单元,用于在所述并行加载单元创建子线程之后,及触发所述子线程加载所述第一驱动程序之前,触发所述子线程判断所述第一驱动程序是否具有相关联的第三驱动程序;若是,触发第二监测单元,否则,控制所述并行加载单元触发所述子线程加载所述第一驱动程序;
第二监测单元,用于触发所述子线程监测所述第三驱动程序是否加载完毕,当监测结果为是时,控制所述并行加载单元触发所述子线程加载所述第一驱动程序。
可选地,还包括:标识预设单元,用于预先设置驱动程序的预设并行加载标识;其中,所述标识预设单元包括:
程序获取子单元,用于获取多个驱动程序;
个数判断子单元,用于判断各个所述驱动程序具有的相关联的第三驱动程序的个数是否低于预设个数值,获得每个所述驱动程序各自对应的第一判断结果;
时间判断子单元,用于判断各个所述驱动程序的加载时间是否超过预设时间值,获得每个所述第二驱动程序各自对应的第二判断结果;
标识设置子单元,用于当驱动程序的第一判断结果及第二判断结果均为是时,为该驱动程序设置并行加载标识。
可选地,所述串行加载单元包括:
串行加载子单元,用于触发所述主线程创建加载环境,并将所述第二驱动程序加载至所述加载环境中。
本发明提供了驱动程序加载方法及装置,应用于安装有多个驱动程序的智能设备,该方法包括当接收到加载命令时,创建主线程,并触发该主线程判断该多个驱动程序是否具有预设并行加载标识,当驱动程序具有预设并行加载标识时,创建子线程,并触发该子线程加载该具有预设并行加载标识的驱动程序,若驱动程序未具有预设并行加载标识时,则触发主线程加载该未具有预设并行加载标识的驱动程序。与现有的主线程按照预设加载顺序,依次串行加载各个驱动程序的加载方式相比,本发明为具有预设并行加载标识的驱动程序创建单独的子线程,子线程用于并行加载具有预设并行加载标识的驱动程序,从而可以节省记载时间,加载效率较高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的驱动程序加载方法的流程图;
图2为本发明实施例提供的驱动程序加载示意图;
图3为本发明另一实施例提供的驱动程序加载方法的流程图;
图4为本发明又一实施例提供的驱动程序加载方法的流程图;
图5为本发明实施例提供的驱动程序加载装置的结构框图;
图6为本发明另一实施例提供的驱动程序加载装置的结构框图;
图7为本发明又一实施例提供的驱动程序加载装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,其示出了本发明实施例提供的驱动程序加载方法的流程,具体包括以下步骤:
步骤S101:当接收到加载命令时,创建主线程。
其中,当智能设备需要启动时,内部生成加载命令,该加载命令发送至本实施例的执行模块中,执行模块接收到该加载命令后,可知需要加载智能设备中的各个驱动程序,则首先创建主线程。
步骤S102:触发所述主线程判断各个驱动程序是否具有预设并行加载标识。当第一驱动程序具有预设并行加载标识时,执行步骤S103,当第二驱动程序未具有预设并行加载标识时,执行步骤S104。
智能设备中安装有多个驱动程序,在本实施例执行前,预先为多个驱动程序中的一些驱动程序设置并行加载标识,进而本步骤执行时,主线程可判断各个驱动程序是否具有并行加载标识。需要说明的是,可以根据不同的实际需求,为不同的驱动程序设置并行加载标识,其中,具体的一种设置方式可参照下文描述。
本步骤中,主线程需要判断每个驱动程序是否具有并行加载标识,需要说明的是,本步骤可以与步骤S103及步骤S104交叉进行。因为,本步骤的判断过程可以是依次判断,即首先判断第一个驱动程序是否具有预设并行加载标识,若具有,则执行步骤S103,然后,主线程继续执行对下一个驱动程序的判断,若未具有,则执行步骤S104,然后,继续执行对下一个驱动程序的判断。以此类推,直至最后一个驱动程序。
步骤S103:创建子线程,并触发所述子线程加载所述第一驱动程序。
其中,第一驱动程序指的是具有预设并行加载标识的驱动程序。若步骤S102对某个驱动程序的判断结果为是,则创建子线程,并触发子线程加载该驱动程序。需要说明的是,当子线程加载第一驱动程序的同时,主线程在判断驱动程序是否具有预设并行加载标识,或者主线程在加载并未具有并行加载标识的驱动程序。
需要说明,当主线程判断出一个第一驱动程序后,则为该驱动程序创建一个子线程,用于加载第一驱动程序,也就是说,每个第一驱动程序均对应一个子线程,各个子线程分别加载各自对应的第一驱动程序。可以看出,具有并行加载标识的多个驱动程序为并行加载,并不需要按照现有中的预设加载顺序进行串行加载,从而可以降低总体的加载时间。
步骤S104:触发所述主线程加载所述第二驱动程序。
其中,第二驱动程序指的是并不具有预设并行加载标识的驱动程序。在现有加载方式中,各个驱动程序为串行加载,即主线程按照预设顺序,依次记载每个驱动程序。若步骤S102对某个驱动程序的判断结果为否,则仍然由主线程加载该驱动程序,加载完毕后,继续返回步骤S102,即继续由主线程判断下一驱动程序是否具有预设并行加载标识。
由以上的技术方案可知,本实施例提供的驱动程序加载方法,应用于安装有多个驱动程序的智能设备,该方法包括当接收到加载命令时,创建主线程,并触发该主线程判断该多个驱动程序是否具有预设并行加载标识,当驱动程序具有预设并行加载标识时,创建子线程,并触发该子线程加载该具有预设并行加载标识的驱动程序,若驱动程序未具有预设并行加载标识时,则触发主线程加载该未具有预设并行加载标识的驱动程序。
如图2所示,本实施例为具有预设并行加载标识的驱动程序创建单独的子线程,子线程用于并行加载具有预设并行加载标识的驱动程序,从而使得具有预设并行加载标识的驱动程序可以与主线程的判断或加载过程同时进行。与现有的主线程按照预设加载顺序,依次串行加载各个驱动程序的加载方式相比,本实施例提供的驱动程序加载方法可以节省记载时间,加载效率较高。
在现实情况中,智能设备中安装的多个驱动程序往往存在相互关联的情况,即某些个驱动程序间具有先后加载顺序。面对这种应用场景,本发明另一实施例提供了驱动程序的加载方法,在对具有预设并行加载标识的驱动程序进行并行加载时,判断其对应的关联程序是否已加载完毕。具体地,如图3所示,在上述实施例的步骤S103之前,还包括:步骤S105及步骤S106。
步骤S105:判断所述第一驱动程序是否具有相关联的第三驱动程序;所述第三驱动程序为与所述第一驱动程序具有预设加载先后顺序的驱动程序,且所述第三驱动程序的加载顺序先于所述第一驱动程序;若是,执行步骤S106;若否,执行步骤S103创建子线程,并触发所述子线程加载所述第一驱动程序。
本实施例中,智能设备安装的多个驱动程序中,某些驱动程序之间具有预设加载先后顺序,该预设加载先后顺序是由各个驱动程序自身的性质决定的,例如,摄像头驱动程序在被加载前,需要加载与存储功能相关的驱动程序。该预设加载先后顺序可以记录在相关联的驱动程序的设备文件中,例如,驱动程序1与驱动程序4之间具有预设加载先后顺序,且驱动程序4的加载顺序先于驱动程序1,则在驱动程序1的设备文件中记录驱动程序4的标识,用以表明在加载驱动程序1前,需要加载驱动程序4。
另外,在该示例中,若驱动程序1为第一驱动程序,即具有预设并行加载标识的驱动程序,按照上述对第三驱动程序的说明,可知驱动程序4为第三驱动程序。
若本步骤判断得出某个或某些第一驱动程序具有相关联的第三驱动程序,则执行步骤S106。否则,直接创建子线程,利用该子线程加载该第一驱动程序。
步骤S106:监测所述第三驱动程序是否加载完毕,当监测结果为是时,执行步骤S103创建子线程,并触发所述子线程加载所述第一驱动程序。
实时监测第三驱动程序是否已经加载完毕,该驱动程序可能是由主线程加载的驱动程序,或者可能是由子线程加载的驱动程序,不论是何种的加载方式,均需要等待该关联的第三驱动程序加载完毕,然后再加载步骤S105中的该第一驱动程序。
若某些驱动程序具有预设先后加载顺序,但这些驱动程序被设置上预设并行加载标识,按照上一实施例的加载方法,则可能导致加载失败。为此,本实施例中,在创建子线程加载某个具有预设并行加载的驱动程序之前,首先判断该驱动程序是否具有相关联的驱动程序,若没有,则直接创建子线程并进行加载,若有,则需要等待该相关联的驱动程序加载完毕,再创建子线程进行加载,从而解决了上述加载失败的问题。
需要说明的是,本实施例中的其他步骤参照上一实施例,此处并不做赘述。
另外,监测第三驱动程序是否加载完毕并一定是由本发明实施例的执行模块完成的,还可以是由子线程独立完成的。如图4所示,具体的实现方式中包括:
步骤S201:当接收到加载命令时,创建主线程。
步骤S202:触发主线程判断各个驱动程序是否具有预设并行加载标识。当第一驱动程序具有预设并行加载标识时,执行步骤S203;当第二驱动程序未具有预设并行加载标识时,执行步骤S207。
步骤S203:创建子线程。
步骤S204:触发所述子线程判断所述第一驱动程序是否具有相关联的第三驱动程序;所述第三驱动程序为与所述第一驱动程序具有预设加载先后顺序的驱动程序,且所述第三驱动程序的加载顺序先于所述第一驱动程序;若是,执行步骤S205;否则,执行步骤S206。
步骤S205:触发所述子线程监测所述第三驱动程序是否加载完毕;当监测结果为是时,执行步骤S206。
步骤S206:触发所述子线程加载所述第一驱动程序。
步骤S207:触发主线程加载第二驱动程序。
需要说明,本实施例中的步骤S201、步骤S202、步骤S203、步骤S206及步骤S207的说明可参照上述各个实施例,此处并不做赘述。
本实施例中,将监测相关联的驱动程序是否加载完毕的过程交由子线程完成,因此,在创建子线程之后,可以立即触发主线程判断下一驱动程序是否具有预设并行加载标识,使得监测过程与主线程的判断过程并行执行,进一步节省加载时间。
上述各个实施例在执行前,需要预先为多个驱动程序中的某些驱动程序设置并行加载标识,其中,该预先设置并行加载标识的过程包括以下步骤:
步骤S301:获取多个驱动程序。
其中,获取智能设备中安装的多个驱动程序,具体获取到的是各个驱动程序的设备文件,该各个设备文件中,可以记录有驱动程序是否具有相关联的驱动程序。
步骤S302:判断各个所述驱动程序具有的相关联的第三驱动程序的个数是否低于预设个数值,获得每个所述驱动程序各自对应的第一判断结果。
本步骤中,分别获取每个驱动程序各自具有的相关联的驱动程序(即第三驱动程序)的个数,并分别判断每个驱动程序的第三驱动程序的个数是否超过预设个数值。其中,获取个数的方式与设备文件的记录方式相关,若设备文件中记录有该驱动程序对应的第三驱动程序的总个数,则直接获取该总个数,若设备文件中只是记录该驱动程序对应的各个第三驱动程序的标识,则需要统计总个数。
例如,驱动程序1的设备文件中,记录的相关联的驱动程序分别为驱动程序3、驱动程序6及驱动程序8,则统计出该驱动程序1的第三驱动程序的个数为3。
需要说明的是,若某个驱动程序没有相关联的驱动程序时,则该驱动程序对应的第三驱动程序个数为零。另外,预设个数值可以是根据实际需要设置的数值,本发明并不做限定。
步骤S303:判断各个所述驱动程序的加载时间是否超过预设时间值,获得每个所述第二驱动程序各自对应的第二判断结果。
每个驱动程序具有各自的加载时间,即该驱动程序加载到系统中所用的时间。
步骤S304:当驱动程序的第一判断结果及第二判断结果均为是时,为该驱动程序设置并行加载标识。
其中,多个驱动程序中,若某个驱动程序对应的两个判断结果均为是,则表明该驱动程序相关联的驱动程序较少,并且该驱动程序的加载时间较长,则为该驱动程序设置并行加载标识。经过上述设置过程,则多个驱动程序中的某些驱动程序具有并行加载标识,从而可以利用上述各个实施例提供的方法将并行加载该多个驱动程序。
需要说明的是,若某个驱动程序的第一判断结果或第二判断结果为否,或者两者均为否时,则并不为该驱动程序设置并行加载标识。
需要说明的是,上述各个实施例中的触发动作的实现方式可以是向被触发者发送一个指令,当被触发者接收到该指令后,进而执行相应动作。
在上述各个实施例中,触发主线程加载所述第二驱动程序的方式可以是:首先触发主线程创建加载环境,进而将第二驱动程序加载至该加载环境中,完成对第二驱动程序的加载。另外,触发子线程加载第一驱动程序的方式可以参照主线程。
下面对本发明实施例提供的驱动程序加载装置进行介绍,需要说明的是,下文中有关驱动程序加载装置的说明可参照上文的驱动程序加载方法,此处并不做赘述。
参照图5,其示出了本发明实施例提供的驱动程序加载装置的结构,具体包括:主线程创建单元100、标识判断单元200、并行加载单元300及串行加载单元400;其中:
主线程创建单元100,用于当接收到加载命令时,创建主线程;
标识判断单元200,用于触发所述主线程判断各个驱动程序是否具有预设并行加载标识;当第一驱动程序具有预设并行加载标识时,触发并行加载单元300;当第二驱动程序未具有预设并行加载标识时,触发串行加载单元400;
并行加载单元300,用于创建子线程,并触发所述子线程加载所述第一驱动程序;
串行加载单元400,用于触发所述主线程加载所述第二驱动程序。
由以上的技术方案可知,本实施例提供的驱动程序加载装置,应用于安装有多个驱动程序的智能设备,当接收到加载命令时,主线程创建单元100创建主线程,标识判断单元200触发该主线程判断该多个驱动程序是否具有预设并行加载标识,当驱动程序具有预设并行加载标识时,并行加载单元300创建子线程,并触发该子线程加载该具有预设并行加载标识的驱动程序,若驱动程序未具有预设并行加载标识时,串行加载单元400触发主线程加载该未具有预设并行加载标识的驱动程序。
本实施例为具有预设并行加载标识的驱动程序创建单独的子线程,子线程用于并行加载具有预设并行加载标识的驱动程序。与现有的主线程串行加载各个驱动程序的加载方式相比,本实施例提供的驱动程序加载装置可以节省记载时间,加载效率较高。
可选地,如图6所示,上述驱动程序加载装置,还包括:第一判断单元500及第一监测单元600;其中:
第一判断单元500,用于在创建子线程,并触发所述子线程加载所述第一驱动程序之前,判断所述第一驱动程序是否具有相关联的第三驱动程序;所述第三驱动程序为与所述第一驱动程序具有预设加载先后顺序的驱动程序,且所述第三驱动程序的加载顺序先于所述第一驱动程序;若是,触发第一监测单元,若否,触发并行加载单元;
第一监测单元600,用于监测所述第三驱动程序是否加载完毕,当监测结果为是时,触发并行加载单元。
可选地,上述的驱动程序加载装置,还包括:
第二判断单元,用于在所述并行加载单元创建子线程之后,及触发所述子线程加载所述第一驱动程序之前,触发所述子线程判断所述第一驱动程序是否具有相关联的第三驱动程序;若是,触发第二监测单元,否则,控制所述并行加载单元触发所述子线程加载所述第一驱动程序。
第二监测单元,用于触发所述子线程监测所述第三驱动程序是否加载完毕,当监测结果为是时,控制所述并行加载单元触发所述子线程加载所述第一驱动程序。
需要说明的是,第二判断单元分别与第二监测单元及并行加载单元相连,当并行加载单元创建子进程后,触发第二判断单元执行,当第二判断单元的判断结果为是时,触发第二监测单元,当第二判断单元的判断结果为否时,控制并行加载单元触发子线程加载第一驱动程序。另外,第二监测单元也同样需要与并行加载单元相连,当第二监测单元的判断结果为是时,则控制并行加载单元触发子线程加载第一驱动程序。
需要说明,控制并行加载单元触发子线程加载第一驱动程序的方式,可以是向并行加载单元发送一个指令,当并行加载单元接收到该指令后,自动执行触发子线程加载第一驱动程序。
可选地,如图7所示,上述的驱动程序加载装置,还包括:标识预设单元700,用于预先设置驱动程序的预设并行加载标识;其中,所述标识预设单元700包括:
程序获取子单元701,用于获取多个驱动程序;
个数判断子单元702,用于判断各个所述驱动程序具有的相关联的第三驱动程序的个数是否低于预设个数值,获得每个所述驱动程序各自对应的第一判断结果;
时间判断子单元703,用于判断各个所述驱动程序的加载时间是否超过预设时间值,获得每个所述第二驱动程序各自对应的第二判断结果;
标识设置子单元704,用于当驱动程序的第一判断结果及第二判断结果均为是时,为该驱动程序设置并行加载标识。
可选地,上述驱动程序加载装置中串行加载单元400包括:
串行加载子单元,用于触发所述主线程创建加载环境,并将所述第二驱动程序加载至所述加载环境中。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种驱动程序加载方法,其特征在于,包括:
当接收到加载命令时,创建主线程;
触发所述主线程判断各个驱动程序是否具有预设并行加载标识;
当第一驱动程序具有预设并行加载标识时,创建子线程,并触发所述子线程加载所述第一驱动程序;
当第二驱动程序未具有预设并行加载标识时,触发所述主线程加载所述第二驱动程序。
2.根据权利要求1所述的驱动程序加载方法,其特征在于,在所述创建子线程,并触发所述子线程加载所述第一驱动程序之前,还包括:
判断所述第一驱动程序是否具有相关联的第三驱动程序;所述第三驱动程序为与所述第一驱动程序具有预设加载先后顺序的驱动程序,且所述第三驱动程序的加载顺序先于所述第一驱动程序;
若是,监测所述第三驱动程序是否加载完毕,当监测结果为是时,创建子线程,并触发所述子线程加载所述第一驱动程序;
若否,创建子线程,并触发所述子线程加载所述第一驱动程序。
3.根据权利要求1所述的驱动程序加载方法,其特征在于,在所述创建子线程之后,及触发所述子线程加载所述第一驱动程序之前,还包括:
触发所述子线程判断所述第一驱动程序是否具有相关联的第三驱动程序;所述第三驱动程序为与所述第一驱动程序具有预设加载先后顺序的驱动程序,且所述第三驱动程序的加载顺序先于所述第一驱动程序;
若是,触发所述子线程监测所述第三驱动程序是否加载完毕,当监测结果为是时,触发所述子线程加载所述第一驱动程序;
若否,触发所述子线程加载所述第一驱动程序。
4.根据权利要求1所述的驱动程序加载方法,其特征在于,驱动程序的预设并行加载标识的预设过程包括:
获取多个驱动程序;
判断各个所述驱动程序具有的相关联的第三驱动程序的个数是否低于预设个数值,获得每个所述驱动程序各自对应的第一判断结果;
判断各个所述驱动程序的加载时间是否超过预设时间值,获得每个所述第二驱动程序各自对应的第二判断结果;
当驱动程序的第一判断结果及第二判断结果均为是时,为该驱动程序设置并行加载标识。
5.根据权利要求1所述的驱动程序加载方法,其特征在于,所述触发所述主线程加载所述第二驱动程序包括:
触发所述主线程创建加载环境,并将所述第二驱动程序加载至所述加载环境中。
6.一种驱动程序加载装置,其特征在于,包括:
主线程创建单元,用于当接收到加载命令时,创建主线程;
标识判断单元,用于触发所述主线程判断各个驱动程序是否具有预设并行加载标识;当第一驱动程序具有预设并行加载标识时,触发并行加载单元;当第二驱动程序未具有预设并行加载标识时,触发串行加载单元;
并行加载单元,用于创建子线程,并触发所述子线程加载所述第一驱动程序;
串行加载单元,用于触发所述主线程加载所述第二驱动程序。
7.根据权利要求6所述的驱动程序加载装置,其特征在于,还包括:
第一判断单元,用于在创建子线程,并触发所述子线程加载所述第一驱动程序之前,判断所述第一驱动程序是否具有相关联的第三驱动程序;所述第三驱动程序为与所述第一驱动程序具有预设加载先后顺序的驱动程序,且所述第三驱动程序的加载顺序先于所述第一驱动程序;若是,触发第一监测单元,若否,触发并行加载单元;
第一监测单元,用于监测所述第三驱动程序是否加载完毕,当监测结果为是时,触发并行加载单元。
8.根据权利要求6所述的驱动程序加载装置,其特征在于,还包括:
第二判断单元,用于在所述并行加载单元创建子线程之后,及触发所述子线程加载所述第一驱动程序之前,触发所述子线程判断所述第一驱动程序是否具有相关联的第三驱动程序;若是,触发第二监测单元,否则,控制所述并行加载单元触发所述子线程加载所述第一驱动程序;
第二监测单元,用于触发所述子线程监测所述第三驱动程序是否加载完毕,当监测结果为是时,控制所述并行加载单元触发所述子线程加载所述第一驱动程序。
9.根据权利要求6所述的驱动程序加载装置,其特征在于,还包括:标识预设单元,用于预先设置驱动程序的预设并行加载标识;其中,所述标识预设单元包括:
程序获取子单元,用于获取多个驱动程序;
个数判断子单元,用于判断各个所述驱动程序具有的相关联的第三驱动程序的个数是否低于预设个数值,获得每个所述驱动程序各自对应的第一判断结果;
时间判断子单元,用于判断各个所述驱动程序的加载时间是否超过预设时间值,获得每个所述第二驱动程序各自对应的第二判断结果;
标识设置子单元,用于当驱动程序的第一判断结果及第二判断结果均为是时,为该驱动程序设置并行加载标识。
10.根据权利要求6所述的驱动程序加载装置,其特征在于,所述串行加载单元包括:
串行加载子单元,用于触发所述主线程创建加载环境,并将所述第二驱动程序加载至所述加载环境中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410743475.XA CN104360889B (zh) | 2014-12-08 | 2014-12-08 | 一种驱动程序加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410743475.XA CN104360889B (zh) | 2014-12-08 | 2014-12-08 | 一种驱动程序加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104360889A true CN104360889A (zh) | 2015-02-18 |
CN104360889B CN104360889B (zh) | 2017-11-10 |
Family
ID=52528153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410743475.XA Active CN104360889B (zh) | 2014-12-08 | 2014-12-08 | 一种驱动程序加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104360889B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582385A (zh) * | 2018-11-07 | 2019-04-05 | Oppo广东移动通信有限公司 | 应用程序启动方法和装置、存储介质及电子设备 |
CN114968384A (zh) * | 2020-08-31 | 2022-08-30 | 华为技术有限公司 | 一种功能调用方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1667574A (zh) * | 2004-03-02 | 2005-09-14 | 微软公司 | 并行驱动程序 |
CN101916208A (zh) * | 2010-08-30 | 2010-12-15 | 芯通科技(成都)有限公司 | 一种用于多线程调用驱动模块的系统及方法 |
CN101923460A (zh) * | 2010-07-19 | 2010-12-22 | 西安交通大学 | 一种动态多线程划分方法 |
CN101996087A (zh) * | 2010-12-02 | 2011-03-30 | 北京星河亮点通信软件有限责任公司 | 多核处理器阵列程序的动态加载系统及方法 |
-
2014
- 2014-12-08 CN CN201410743475.XA patent/CN104360889B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1667574A (zh) * | 2004-03-02 | 2005-09-14 | 微软公司 | 并行驱动程序 |
CN101923460A (zh) * | 2010-07-19 | 2010-12-22 | 西安交通大学 | 一种动态多线程划分方法 |
CN101916208A (zh) * | 2010-08-30 | 2010-12-15 | 芯通科技(成都)有限公司 | 一种用于多线程调用驱动模块的系统及方法 |
CN101996087A (zh) * | 2010-12-02 | 2011-03-30 | 北京星河亮点通信软件有限责任公司 | 多核处理器阵列程序的动态加载系统及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582385A (zh) * | 2018-11-07 | 2019-04-05 | Oppo广东移动通信有限公司 | 应用程序启动方法和装置、存储介质及电子设备 |
CN114968384A (zh) * | 2020-08-31 | 2022-08-30 | 华为技术有限公司 | 一种功能调用方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104360889B (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104613607B (zh) | 数据交互方法及装置和空调控制系统 | |
CN103209197B (zh) | 集群服务器部署方法及系统 | |
CN105895004B (zh) | 显示屏驱动方法及装置 | |
US20180157484A1 (en) | Firmware update method and system | |
CN103744723A (zh) | 一种线程池的管理方法和管理系统 | |
CN104657188A (zh) | 一种开机控制方法、装置和电子设备 | |
CN107505576A (zh) | 分布式系统中模块自动识别系统及方法 | |
CN105589757A (zh) | 一种服务器架构下的保护工作进程的方法和服务器 | |
CN103019806A (zh) | 一种异步任务处理方法和装置 | |
CN105528261A (zh) | 一种嵌入式设备中智能输出调试信息的方法及系统 | |
CN106528065B (zh) | 一种线程获取方法及设备 | |
CN104360889A (zh) | 一种驱动程序加载方法及装置 | |
CN104597789A (zh) | 一种充电桩的自检装置、系统及方法 | |
CN101360253A (zh) | 电视机自动测试方法和系统 | |
CN101710020B (zh) | 振动台功放自检方法及装置 | |
CN104252380B (zh) | Linux系统下系统调用的控制方法及装置 | |
CN105138666B (zh) | 一种数据处理的方法及终端 | |
CN110958296A (zh) | 充电桩集群通信系统、方法及充电桩 | |
US20070239288A1 (en) | Power system and work flow thereof | |
CN108733383B (zh) | 一种XenServer虚拟机载入光盘ISO文件的方法、系统 | |
CN104572087A (zh) | 一种业务逻辑实现的适配模式方法及系统 | |
CN115412615B (zh) | 基于核电厂dcs平台软件实现多端口tcp通信的方法 | |
CN107054409A (zh) | 一种列车控制网络系统及其控制方法 | |
CN104461738B (zh) | 资源管理器中资源复用的方法、对应系统及设备 | |
CN106101784A (zh) | 一种智能电视控制蓝牙芯片的复位方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: Room 101-105, floor 1, Chuangda building, No. 9, Qinghua East Road, Haidian District, Beijing 100083 (Dongsheng District) Patentee after: Thunder Software Technology Co., Ltd. Address before: 100191 Beijing Haidian District Lung Cheung Road No. 1 Tai Xiang business building 4 layer 401-409 Patentee before: Thunder Software Technology Co., Ltd. |