一种分配线程执行任务的方法和系统的制作方法

文档序号:6444675阅读:137来源:国知局
专利名称:一种分配线程执行任务的方法和系统的制作方法
技术领域
本发明涉及计算机领域,特别涉及一种分配线程执行任务的方法和系统。
背景技术
现有技术中,多线程的应用中,如果创建过多的线程将会增加系统资源的占用,并且还需要处理资源要求和潜在的占用之间的冲突。使用多线程之后将使任务的执行流程和资源竞争情况变得复杂,容易发生错误。现有技术中采用线程池来解决此类问题。但现有技术中的线程池方案,使用固定数量的线程,并且执行完成后,没有执行结果的反馈,而且对于任务的执行没有优先级区分。现有技术中,因为没有反馈执行结果,使得应用不够便捷;因为线程数量不够灵活,造成系统资源的浪费;因为没有按优先级执行任务,使得线程调度缺乏智能性。

发明内容
本发明提供的一种分配线程执行任务的方法和系统,以解决没有反馈执行结果,应用不够便捷的问题。本发明公开了一种分配线程执行任务的方法,所述方法包括步骤1,创建线程池;步骤2,创建任务,将任务加入任务队列中;步骤3,调用线程池中的空闲线程,将任务队列中任务分配给所述空闲线程;步骤4,线程执行完任务后,返回执行结果给所述任务。其中,所述创建任务进一步包括步骤21,将结果对象参数和包含任务操作的多播委托对象添加到所述任务中;所述步骤4进一步包括步骤22,线程执行完任务后,将执行结果赋予结果对象参数。其中,所述创建任务后还包括步骤31,为创建的任务设置优先级;所述将任务加入任务队列中进一步包括步骤32,按优先级从高到低的顺序,将创建的任务加入任务队列中;所述步骤3进一步包括步骤33,调用线程池中的空闲线程,以任务队列的头为起点,顺序提取任务,将提取的任务分配给所述空闲线程。其中,所述创建线程池后还包括步骤41,执行线程池中一个线程,所述线程用于进行任务分配,所述线程称为分配线程;所述将任务加入任务队列中以后还包括步骤42,唤醒分配线程进行任务分配;
所述步骤3进一步包括步骤43,分配线程调用线程池中的空闲线程,将任务队列中任务分配给空闲线程,分配完毕后所述分配线程休眠。其中,所述步骤1进一步包括步骤51,按预设的初始线程数量创建线程,所述线程组成线程池;所述步骤43进一步包括步骤52,分配线程查找线程池中的空闲线程;步骤53,如果线程池中存在空闲线程,则调用空闲线程,从任务队列中提取任务,将所述任务分配给空闲线程,分配完毕后,分配线程休眠;否则,分配线程休眠预设时长后执行步骤52。其中,所述步骤52和步骤53间还包括步骤61,根据查找结果和当前任务队列中的任务数量确定创建线程的数量;步骤62,如果所述数量不为0,则依据所述数量创建线程,并将创建的线程加入线程池,新创建的线程状态为空闲。其中,所述方法还包括按如下步骤定期地删除线程池中多余线程,步骤71,分配线程定期确定线程池中多余线程数量;步骤72,依据所述多余线程数量删除空闲线程,释放删除的线程占用的资源。其中,所述步骤71进一步包括步骤81A,依据任务队列中排序最后的任务的加入时间、当前时间、线程单位时间处理任务的平均数量、当前任务队列中的任务数量和预设的任务等待时长阈值,确定线程池中需要的空闲线程数量;步骤82A,将所述需要的空闲线程数量和当前占用的线程数量相加得和值,取所述初始线程数量与所述和值中较大值,线程池中当前线程数量与较大值的差值为所述多余线程数量;或者,所述步骤61进一步包括步骤81B,依据任务队列中排序最后的任务的加入时间、当前时间、线程单位时间处理任务的平均数量、当前任务队列中的任务数量和预设的任务等待时长阈值,确定线程池中需要的空闲线程数量;步骤82B,将所述需要的空闲线程数量和当前占用的线程数量相加得和值,取预设的最大线程数量与所述和值中较小值,较小值与当前线程池中线程数量的差值为所述创建线程的数量。其中,所述步骤43后还包括步骤91,线程执行完任务后,唤醒分配线程;步骤92,分配线程查找任务队列中是否有任务,如果有,则执行步骤43,否则,分配线程休眠;或者,所述步骤43后还包括步骤93,线程执行完任务后,所述线程查找任务队列中是否有任务,如果有,则提取任务队列中第一个任务,执行所述任务;
或者, 所述步骤43后还包括步骤94,分配线程定期被唤醒,分配线程查找任务队列中是否有任务,如果有,则执行步骤43,否则,分配线程休眠。本发明还公开了一种分配线程执行任务的系统,所述系统包括线程池创建模块,用于创建线程池;任务添加模块,用于创建任务,将任务加入任务队列中;任务分配模块,用于调用线程池中的空闲线程,将任务队列中任务分配给所述空闲线程;结果返回模块,用于在线程执行完任务后,返回执行结果给所述任务。本发明实施例的有益效果是通过反馈执行结果,使得应用更便捷;通过按优先级执行任务,使得线程调度更具智能性;通过动态的线程数量调整,使得线程使用更加灵活,减少系统资源的浪费。


图1为本发明的分配线程执行任务的方法的流程图;图2为本发明的分配线程执行任务的方法的实施例流程图;图3为本发明的分配线程执行任务的系统的结构图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。参见图1,为本发明提供的分配线程执行任务的方法的流程图。一种分配线程执行任务的方法,其特征在于,所述方法包括步骤S100,创建线程池。步骤S200,创建任务,将任务加入任务队列中。步骤S300,调用线程池中的空闲线程,将任务队列中任务分配给空闲线程。步骤S400,线程执行完任务后,返回执行结果给该任务。进一步地,所述创建任务进一步包括将结果对象参数和包含任务操作的多播委托对象添加到所述任务中。所述步骤S400进一步包括线程执行完任务后,将执行结果赋予结果对象参数。在一较佳的实施方式中,按优先级调用线程执行任务。所述创建任务后还包括步骤S210A,为创建的任务设置优先级。所述将任务加入任务队列中进一步包括步骤S220A,按优先级从高到低的顺序,将创建的任务加入任务队列中。所述步骤S300进一步包括步骤S310A,调用线程池中的空闲线程,以任务队列的头为起点,按顺序提取任务,将提取的任务分配给空闲线程。其中,当空闲线程数量大于等于任务队列中任务数量时,提取任务队列中所有任务;当空闲线程数量小于任务队列中任务数量时,从任务队列头开始顺序提取同空闲线程数量相同的任务。在一较佳的实施方式中,使用分配线程进行线程分配。所述创建线程池后还包括步骤S110B,执行线程池中一个线程,所述线程用于进行任务分配,所述线程称为分配线程。所述将任务加入任务队列中以后还包括步骤S210B,唤醒分配线程进行任务分配。所述步骤S300进一步包括步骤S310B,分配线程调用线程池中的空闲线程,将任务队列中任务分配给空闲线程,分配完毕后分配线程休眠。其中,线程被分配线程调用时,状态改为占用,完成任务后,状态改为空闲。进一步地,在一轮任务执行完成后,查看任务队列中是否还有等待执行的任务。通过多种实现方式实现查看。例如,线程执行完任务后,唤醒分配线程;分配线程查找任务队列中是否有任务,如果有,则执行步骤S310B,否则,分配线程休眠。或者,线程执行完任务后,所述线程查找任务队列中是否有任务,如果有,则提取任务队列中第一个任务,执行所述任务。或者,分配线程定期被唤醒,分配线程查找任务队列中是否有任务,如果有,则执行步骤S310B,否则,分配线程休眠。采用上述方法,既可以使得分配线程具有休眠,又可以保证任务队列中任务被及时提取执行。在一较佳的实施方式中,线程池中线程数量采用固定模式,该固定模式适合任务量相对固定的情况。所述步骤SlOO进一步包括步骤S110C,按预设的初始线程数量创建线程,所述线程组成线程池。所述分配线程调用线程池中的空闲线程,将任务队列中任务分配给空闲线程,分配线程休眠进一步包括如下步骤。步骤S310C,分配线程查找线程池中的空闲线程。步骤S320C,如果线程池中存在空闲线程,则调用空闲线程,从任务队列中提取任务,将所述任务分配给空闲线程,分配完毕后,分配线程休眠;否则,分配线程休眠预设时长后执行步骤S310C。在一较佳的实施方式中,线程池中线程数量采用动态模式,该动态模式适合任务量变化相对较大的情况。所述步骤SlOO进一步包括步骤S110D,按预设的初始线程数量创建线程,所述线程组成线程池。初始线程数量为线程池中线程的最小数量。所述分配线程调用线程池中的空闲线程,将任务队列中任务分配给空闲线程,分配完毕后,分配线程休眠进一步包括如下步骤。步骤S311D,分配线程查找线程池中的空闲线程。步骤S312D,根据查找结果和当前任务队列中的任务数量确定创建线程的数量。方式一,将任务队列中任务的数量和查找到的空闲线程数量比较,如果查找到的空闲线程数量较少,则任务队列中任务的数量与空闲线程数量相减得差值,该差值为创建线程的数量,否则,创建线程的数量为0。方式二,配置中还包括最大线程数量,线程池中线程数量大于等于最小数量且小于等于最大线程数量。首先,判断线程池中当前线程的数量是否为最大线程数量,如果是,则创建线程的数量为0,如果否,则进行如下判断。将任务队列中任务的数量和查找到的空闲线程数量比较,如果查找到的空闲线程数量较少,则任务队列中任务的数量与空闲线程数量相减得差值,该差值为需要增加的线程数量,否则,创建线程的数量为0。再判断现有线程数量加该需要增加的线程数量的和是否大于等于最大线程数量,如果是,则最大线程数量与现有线程数量差值为创建线程的数量,否则,需要增加的线程数量为创建线程的数量。方式三,配置中还包括最大线程数量,线程池中线程数量大于等于最小数量且小于等于最大线程数量。依据任务队列中排序最后的任务的加入时间、当前时间、线程单位时间处理任务的平均数量、当前任务队列中的任务数量和预设的任务等待时长阈值,确定线程池中需要的空闲线程数量。将所述需要的空闲线程数量和当前占用的线程数量相加得和值,取预设的最大线程数量与所述和值中较小值,较小值与当前线程池中线程数量的差值为所述创建线程的数量。具体操作如下所述。首先,判断线程池中当前线程的数量是否为最大线程数量,如果是,则创建线程的数量为0,如果否,则进行如下判断。将任务队列中任务的数量和查找到的空闲线程数量比较,如果查找到的空闲线程数量大于等于任务队列中任务的数量,则创建线程的数量为0,否则,按如下方法确定创建线程的数量。按如下公式确定需要的空闲线程的数量。t = tO+T-tl,η = N/(vXt)其中,t0为任务队列中排序最后的任务的加入时间,T为预设的任务等待时长阈值,tl为当前时间,η为需要的空闲线程的数量,N为当前任务队列中的任务数量,ν为线程单位时间处理任务的平均数量。将当前占用的线程数量同需要的空闲线程的数量相加得和值。比较该和值和最大线程数量,如果和值较大,则创建线程的数量为最大线程数量与当前线程池中线程数量相减的差值,否则,创建线程的数量为和值与当前线程池中线程数量相减的差值。步骤S313D,如果所述数量不为0,则依据所述数量创建线程,并将创建的线程加入线程池,新创建的线程状态为空闲。步骤S314D,如果线程池中存在空闲线程,则从任务队列中提取任务,将所述任务分配给空闲线程,分配完毕后,分配线程休眠;否则,分配线程休眠预设时长后执行步骤S312D0在一较佳的实施方式中,定期判断线程池中线程数量是否过剩,删除一定数量的线程,释放资源,以减少资源消耗。所述方法还包括按如下步骤定期地删除线程池中多余线程。步骤S510E,分配线程定期确定线程池中多余线程数量。通过多种方式确定多余线程数量。方式一,将任务队列中任务的数量和空闲线程数量比较,如果空闲线程数量较多,则空闲线程数量与任务队列中任务的数量相减得差值,该差值为多余线程数量,否则,多余线程数量为0。方式二,首先,判断线程池中当前线程的数量是否为初始线程数量,如果是,则多余线程数量为0,如果否,则进行如下判断。将任务队列中任务的数量和空闲线程数量比较,如果任务的数量较少,则空闲线程数量与任务的数量相减得差值,该差值为需要删除的线程数量,否则,多余线程数量为0。再判断现有线程数量与该需要删除的线程数量的差是否小于等于初始线程数量,如果是,则现有线程数量与初始线程数量差值为多余线程数量,否则,需要删除的线程数量为多余线程数量。方式三,依据任务队列中排序最后的任务的加入时间、当前时间、线程单位时间处理任务的平均数量、当前任务队列中的任务数量和预设的任务等待时长阈值,确定线程池中需要的空闲线程数量。将所述需要的空闲线程数量和当前占用的线程数量相加得和值,取所述初始线程数量与和值中较大值,线程池中当前线程数量与较大值的差值为所述多余线程数量。举例而言,判断线程池中当前线程的数量是否为初始线程数量,如果是,则多余线程数量为0,如果否,则进行如下判断。将任务队列中任务的数量和空闲线程数量比较,如果空闲线程数量小于等于任务队列中任务的数量,则多余线程数量为0,否则,按如下方法确定多余线程数量。按如下公式确定需要的空闲线程的数量。t = tO+T-tl,η = N/(ν Xt)其中,t0为任务队列中最后加入任务的时间,T为预设的任务等待时长阈值,tl为当前时间,η为需要的空闲线程的数量,N为当前任务队列中的任务数量,ν为线程单位时间处理任务的平均数量。将当前占用的线程数量同需要的空闲线程的数量相加得和值,比较该和值和初始线程数量,如果初始线程数量较大,则多余线程数量为当前线程数量与初始线程数量相减的差值,否则,多余线程的数量为当前线程数量与和值相减的差值。
步骤S520E,依据所述多余线程数量删除空闲线程,释放删除的线程占用的资源。参见图2,为本发明提供的分配线程执行任务的实施例方法的流程图。该实施例中采用动态模式。步骤S201,按预设的初始线程数量创建线程,线程组成线程池,执行线程池中一个线程,该线程用于进行任务分配。所述线程称为分配线程。创建线程对象,将线程加入线程池。线程在没有任务执行时,信号量通知处于阻塞状态,线程的状态标识为空闲。当调用线程执行任务时,将线程的状态标识为占用,发送信号量通知给线程,线程开始执行,线程将执行结果或异常传递给任务结果对象参数,并将线程的状态标识为空闲,等待下次调用。用户可以通过结果对象参数获取返回结果,结果为正常执行或异常中断。线程池具体如下功能确定当前任务队列中的任务数量;确定当前线程池中空闲线程的数量;查看任务队列中是否还有任务;释放删除的线程的资源。步骤S202,创建任务,为创建的任务设置优先级,按优先级从高到低的顺序,将创建的任务插入任务队列中,唤醒分配线程进行任务分配。创建任务时,任务接收多播委托对象和结果对象参数,多播委托对象为包含任务操作逻辑的方法。用户由结果对象得到操作执行的结果。步骤S203,分配线程查找线程池中的空闲线程。步骤S204,分配线程根据查找结果和当前任务队列中的任务数量确定创建线程的数量。步骤S205,分配线程进行判断,如果该数量不为0,则依据该数量创建线程,并将创建的线程加入线程池,新创建的线程状态为空闲。步骤S206,分配线程进行判断,如果线程池中存在空闲线程,则执行步骤S208,否则,执行步骤S207。步骤S207,分配线程休眠预设时长后执行步骤S203。步骤S208,分配线程以任务队列的头为起点,顺序提取任务,将提取的任务分配给空闲线程,分配完毕后,分配线程休眠。步骤S209,线程执行任务,执行完毕后,将执行结果赋予结果对象参数,唤醒分配线程。步骤S210,分配线程查找任务队列中是否有任务,如果有,则执行步骤S203,否则,执行步骤S211。步骤S211,分配线程休眠。在本实施例中,分配线程还定期确定线程池中多余线程数量;依据所述多余线程数量删除空闲线程,释放删除的线程占用的资源。参见图3,为本发明分配线程执行任务的系统的结构图。所述系统包括线程池创建模块100,用于创建线程池。任务添加模块200,用于创建任务,将任务加入任务队列中。任务分配模块300,用于调用线程池中的空闲线程,将任务队列中任务分配给所述空闲线程。结果返回模块400,用于在线程执行完任务后,返回执行结果给所述任务。进一步地,所述任务添加模块在创建任务时进一步用于将结果对象参数和包含任务操作的多播委托对象添加到所述任务中;所述结果返回模块进一步用于在线程执行完任务后,将执行结果赋予结果对象参数。进一步地,所述任务添加模块在创建任务后还用于为创建的任务设置优先级;所述任务添加模块在将任务加入任务队列中时进一步用于按优先级从高到低的顺序,将创建的任务加入任务队列中;所述任务分配模块进一步用于调用线程池中的空闲线程,以任务队列的头为起点,顺序提取任务,将提取的任务分配给所述空闲线程。进一步地,所述任务分配模块在线程池创建模块创建完线程池后还用于执行线程池中一个线程,所述线程用于进行任务分配,所述线程称为分配线程;所述任务添加模块在将任务加入任务队列中以后还用于唤醒分配线程进行任务分配;所述任务分配模块进一步用于通过分配线程调用线程池中的空闲线程,将任务队列中任务分配给空闲线程,分配完毕后将分配线程休眠。进一步地,所述线程池创建模块进一步用于按预设的初始线程数量创建线程,所述线程组成线程池;所述任务分配模块在通过分配线程调用线程池中的空闲线程,将任务队列中任务分配给空闲线程,分配完毕后将分配线程休眠时进一步用于通过分配线程查找线程池中的空闲线程;如果线程池中存在空闲线程,则从任务队列中提取任务,将所述任务分配给空闲线程,分配完毕后将分配线程休眠;否则,分配线程休眠预设时长后执行查找。进一步地,所述任务分配模块在查找之后和判断线程池中是否存在空闲线程之前还用于根据查找结果和当前任务队列中的任务数量确定创建线程的数量;如果所述数量不为0,则依据所述数量创建线程,并将创建的线程加入线程池,新创建的线程状态为空闲。进一步地,所述系统还包括线程删除模块,用于通过分配线程定期确定线程池中多余线程数量;依据所述多余线程数量删除空闲线程,释放删除的线程占用的资源。其中,线程删除模块通过分配线程定期确定线程池中多余线程数量时进一步用于依据任务队列中排序最后任务的加入时间、当前时间、线程单位时间处理任务的平均数量、当前任务队列中的任务数量和预设的任务等待时长阈值,确定线程池中需要的空闲线程数量;将所述需要的空闲线程数量和当前占用的线程数量相加得和值,取所述初始线程数量与和值中较大值,线程池中当前线程数量与较大值的差值为所述多余线程数量。进一步地,所述结果返回模块还用于在线程执行完任务后,唤醒分配线程;所述任务分配模块还用于在分配线程被唤醒后,通过分配线程查找任务队列中是否有任务,如果有,则调用线程池中的空闲线程,将任务队列中任务分配给空闲线程,将分配线程休眠,否则,直接将分配线程休眠。进一步地,所述结果返回模块还用于在线程执行完任务后,通过所述线程查找任务队列中是否有任务,如果有,则提取任务队列中第一个任务,通过所述线程执行所述任
12务。进一步地,所述任务分配模块还用于将分配线程定期被唤醒,通过分配线程查找任务队列中是否有任务,如果有,则调用线程池中的空闲线程,将任务队列中任务分配给空闲线程,将分配线程休眠,否则,直接将分配线程休眠。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
权利要求
1.一种分配线程执行任务的方法,其特征在于,所述方法包括步骤1,创建线程池;步骤2,创建任务,将任务加入任务队列中;步骤3,调用线程池中的空闲线程,将任务队列中任务分配给所述空闲线程;步骤4,线程执行完任务后,返回执行结果给所述任务。
2.根据权利要求1所述的分配线程执行任务的方法,其特征在于,所述创建任务进一步包括步骤21,将结果对象参数和包含任务操作的多播委托对象添加到所述任务中;所述步骤4进一步包括步骤22,线程执行完任务后,将执行结果赋予结果对象参数。
3.根据权利要求1所述的分配线程执行任务的方法,其特征在于,所述创建任务后还包括步骤31,为创建的任务设置优先级;所述将任务加入任务队列中进一步包括步骤32,按优先级从高到低的顺序,将创建的任务加入任务队列中;所述步骤3进一步包括步骤33,调用线程池中的空闲线程,以任务队列的头为起点,顺序提取任务,将提取的任务分配给所述空闲线程。
4.根据权利要求1所述的分配线程执行任务的方法,其特征在于,所述创建线程池后还包括步骤41,执行线程池中一个线程,所述线程用于进行任务分配,所述线程称为分配线程;所述将任务加入任务队列中以后还包括步骤42,唤醒分配线程进行任务分配;所述步骤3进一步包括步骤43,分配线程调用线程池中的空闲线程,将任务队列中任务分配给空闲线程,分配完毕后所述分配线程休眠。
5.根据权利要求4所述的分配线程执行任务的方法,其特征在于,所述步骤1进一步包括步骤51,按预设的初始线程数量创建线程,所述线程组成线程池;所述步骤43进一步包括步骤52,分配线程查找线程池中的空闲线程;步骤53,如果线程池中存在空闲线程,则调用空闲线程,从任务队列中提取任务,将所述任务分配给空闲线程,分配完毕后,分配线程休眠;否则,分配线程休眠预设时长后执行步骤52。
6.根据权利要求5所述的分配线程执行任务的方法,其特征在于,所述步骤52和步骤53间还包括步骤61,根据查找结果和当前任务队列中的任务数量确定创建线程的数量;步骤62,如果所述数量不为0,则依据所述数量创建线程,并将创建的线程加入线程池,新创建的线程状态为空闲。
7.根据权利要求6所述的分配线程执行任务的方法,其特征在于,所述方法还包括按如下步骤定期地删除线程池中多余线程,步骤71,分配线程定期确定线程池中多余线程数量;步骤72,依据所述多余线程数量删除空闲线程,释放删除的线程占用的资源。
8.根据权利要求7所述的分配线程执行任务的方法,其特征在于,所述步骤71进一步包括步骤81A,依据任务队列中排序最后的任务的加入时间、当前时间、线程单位时间处理任务的平均数量、当前任务队列中的任务数量和预设的任务等待时长阈值,确定线程池中需要的空闲线程数量;步骤82A,将所述需要的空闲线程数量和当前占用的线程数量相加得和值,取所述初始线程数量与所述和值中较大值,线程池中当前线程数量与较大值的差值为所述多余线程数量;或者,所述步骤61进一步包括步骤81B,依据任务队列中排序最后的任务的加入时间、当前时间、线程单位时间处理任务的平均数量、当前任务队列中的任务数量和预设的任务等待时长阈值,确定线程池中需要的空闲线程数量;步骤82B,将所述需要的空闲线程数量和当前占用的线程数量相加得和值,取预设的最大线程数量与所述和值中较小值,较小值与当前线程池中线程数量的差值为所述创建线程的数量。
9.根据权利要求4所述的分配线程执行任务的方法,其特征在于,所述步骤43后还包括步骤91,线程执行完任务后,唤醒分配线程;步骤92,分配线程查找任务队列中是否有任务,如果有,则执行步骤43,否则,分配线程休眠;或者,所述步骤43后还包括步骤93,线程执行完任务后,所述线程查找任务队列中是否有任务,如果有,则提取任务队列中第一个任务,执行所述任务;或者,所述步骤43后还包括步骤94,分配线程定期被唤醒,分配线程查找任务队列中是否有任务,如果有,则执行步骤43,否则,分配线程休眠。
10.一种分配线程执行任务的系统,其特征在于,所述系统包括线程池创建模块,用于创建线程池;任务添加模块,用于创建任务,将任务加入任务队列中;任务分配模块,用于调用线程池中的空闲线程,将任务队列中任务分配给所述空闲线结果返回模块,用于在线程执行完任务后,返回执行结果给所述任务。
全文摘要
本发明公开一种分配线程执行任务的方法和系统,所述方法包括步骤1,创建线程池;步骤2,创建任务,将任务加入任务队列中;步骤3,调用线程池中的空闲线程,将任务队列中任务分配给所述空闲线程;步骤4,线程执行完任务后,返回执行结果给所述任务。本发明能够解决没有反馈执行结果,应用不够便捷的问题。
文档编号G06F9/50GK102591721SQ201110457378
公开日2012年7月18日 申请日期2011年12月30日 优先权日2011年12月30日
发明者李江林 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1