[发明专利]一种分配线程执行任务的方法和系统无效
申请号: | 201110457378.0 | 申请日: | 2011-12-30 |
公开(公告)号: | CN102591721A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 李江林 | 申请(专利权)人: | 北京新媒传信科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝 |
地址: | 100089 北京市海淀区万*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分配 线程 执行 任务 方法 系统 | ||
技术领域
本发明涉及计算机领域,特别涉及一种分配线程执行任务的方法和系统。
背景技术
现有技术中,多线程的应用中,如果创建过多的线程将会增加系统资源的占用,并且还需要处理资源要求和潜在的占用之间的冲突。使用多线程之后将使任务的执行流程和资源竞争情况变得复杂,容易发生错误。现有技术中采用线程池来解决此类问题。但现有技术中的线程池方案,使用固定数量的线程,并且执行完成后,没有执行结果的反馈,而且对于任务的执行没有优先级区分。
现有技术中,因为没有反馈执行结果,使得应用不够便捷;因为线程数量不够灵活,造成系统资源的浪费;因为没有按优先级执行任务,使得线程调度缺乏智能性。
发明内容
本发明提供的一种分配线程执行任务的方法和系统,以解决没有反馈执行结果,应用不够便捷的问题。
本发明公开了一种分配线程执行任务的方法,所述方法包括:
步骤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,线程执行完任务后,唤醒分配线程;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新媒传信科技有限公司,未经北京新媒传信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110457378.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据自动复制的方法及终端
- 下一篇:激光成像设备及激光成像方法