视频监控平台系统的线程池结构及实现方法

文档序号:6430865阅读:203来源:国知局
专利名称:视频监控平台系统的线程池结构及实现方法
技术领域
本发明涉及视频监控的技术领域,具体说是一种适用于多线程处理环境、能够提供稳定运行的视频监控平台系统的线程池结构及实现方法。
背景技术
Linux作为服务器的系统平台,一般都须要求高可靠的7* 小时运行的应用服务程序,其中网络通信服务又占了很大的比重,这就对这些应用系统的并发处理能力、稳定性等方面提出了很高的要求。通常情况下,为了满足应用程序在性能上的要求,一般会采用多线程模式,但这种模式消耗在创建和销毁线程上的时间或者资源太多,所以采用线程池方式。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在有需求时唤醒线程执行这些任务。线程池的线程都是后台线程.每个线程都使用配置的堆栈大小, 以默认的优先级运行,并处于多线程单元中.适用于boss/work、生产者/消费者等线程模型。如果线程池所有线程都拥有任务时,线程池将创建一定数量的新线程,但线程的数目永远不会超过最大值。

发明内容
本发明要解决的技术问题是提供一种适用于多线程处理环境、能够提供稳定运行的视频监控平台系统的线程池结构及实现方法。本发明为解决公知技术中存在的技术问题所采取的技术方案是
本发明的视频监控平台系统的线程池结构,包括管理线程,线程池中唯一能够操作线程以及线程队列的线程,负责处理任务队列里的所有任务,根据任务创建销毁线程,操作相应的线程队列;线程指针数组,存放所有线程指针,便于线程池销毁时能集中销毁线程,采用指针数据方式,申请一个线程即放入一个线程,通过序号(即数组下标)对线程进行编号; 任务队列,与上层应用唯一的接口队列,负责存放上层应用的任务请求,采用双向循环链表实现,使用先进先出的管理方式,一个新任务首先会被投递到任务队列,然后管理线程从任务队列取得任务;空闲线程队列,存放空闲无任务的线程指针,采用双向循环链表实现,使用先进先出的管理方式,管理线程首先根据任务从空闲线程队列取得空闲线程,并让其执行任务回调,执行完后该线程回到空闲线程队列中;绑定任务线程队列,存放已绑定任务的线程指针,采用双向循环链表实现,管理线程首先根据任务从绑定任务线程队列取得相应绑定线程,并让其执行已绑定的任务回调,执行完后该线程回到绑定任务线程队列中,直到上层应用解除绑定,解除绑定后线程进入空闲线程队列;消息回调,线程池处理完上层应用任务请求后,将结果通过消息回调通知上层应用。视频监控平台系统的线程池实现方法,包括以下步骤
1)上层应用通过线程池任务接口将任务投递添加到任务队列;2)管理线程从任务队列取得任务;
3)根据任务类型分类处理,绑定线程任务,将任务与线程绑定,并将该线程添加到绑定任务线程队列,或者申请空闲线程执行任务,将执行任务线程到繁忙线程队列,分别执行相应任务回调;
4)上述两个相应的线程执行任务后分别返回线程池;
5)将处理任务结果通过消息回调向上层应用进行通知。包括管理线程在内的所有线程空闲时均为挂起即睡眠状态,需要时才将其唤醒。本发明具有的优点和积极效果是
本发明的视频监控平台系统的线程池结构及实现方法,能够避免频繁创建和销毁线程带来的不稳定性以及开销;上层应用的错误不会引起线程池异常;本发明构建了一个通用的线程池体系结构,可以让开发人员方便、快捷地在这个体系上开发适用于大规模并发稳定的应用服务;线程池的结构具有高度的抽象性,这样开发人员不用再关心线程的具体处理或管理逻辑,只需关心具体的客户请求任务处理,从而简化了工作,提高了工作效率;本发明的视频监控平台系统的线程池结构及实现方法适用于多种线程模型,例如Boss/Work、 生产者/消费者等。


图1是本发明的视频监控平台系统的线程池的示意图。
具体实施例方式
以下参照附图及实施例对本发明进行详细的说明。图1是本发明的视频监控平台系统的线程池的示意图。
如图1所示,本发明的视频监控平台系统的线程池结构,包括管理线程,线程池中唯一能够操作线程以及线程队列的线程,负责处理任务队列里的所有任务,根据任务创建销毁线程,操作相应的线程队列;线程指针数组,存放所有线程指针,便于线程池销毁时能集中销毁线程,采用指针数据方式,申请一个线程即放入一个线程,通过序号(即数组下标)对线程进行编号;任务队列,与上层应用唯一的接口队列,负责存放上层应用的任务请求,采用双向循环链表实现,使用先进先出的管理方式,一个新任务首先会被投递到任务队列,然后管理线程从任务队列取得任务;空闲线程队列,存放空闲无任务的线程指针,采用双向循环链表实现,使用先进先出的管理方式,管理线程首先根据任务从空闲线程队列取得空闲线程,并让其执行任务回调,执行完后该线程回到空闲线程队列中;绑定任务线程队列,存放已绑定任务的线程指针,采用双向循环链表实现,管理线程首先根据任务从绑定任务线程队列取得相应绑定线程,并让其执行已绑定的任务回调,执行完后该线程回到绑定任务线程队列中,直到上层应用解除绑定,解除绑定后线程进入空闲线程队列;消息回调,线程池处理完上层应用任务请求后,将结果通过消息回调通知上层应用。视频监控平台系统的线程池实现方法,包括以下步骤
1)上层应用通过线程池任务接口将任务投递添加到任务队列;
2)管理线程从任务队列取得任务;
3)根据任务类型分类处理,绑定线程任务,将任务与线程绑定,并将该线程添加到绑定任务线程队列,或者申请空闲线程执行任务,将执行任务线程到繁忙线程队列,分别执行相应任务回调;
4)上述两个相应的线程执行任务后分别返回线程池;
5)将处理任务结果通过消息回调向上层应用进行通知。包括管理线程在内的所有线程空闲时均为挂起即睡眠状态,需要时才将其唤醒。以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制, 虽然本发明已以较佳实施例公开如上,然而,并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当然会利用揭示的技术内容作出些许更动或修饰,成为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均属于本发明技术方案的范围内。
权利要求
1.一种视频监控平台系统的线程池结构,其特征在于,包括管理线程,线程池中唯一能够操作线程以及线程队列的线程,负责处理任务队列里的所有任务,根据任务创建销毁线程,操作相应的线程队列;线程指针数组,存放所有线程指针,便于线程池销毁时能集中销毁线程,采用指针数据方式,申请一个线程即放入一个线程,通过序号(即数组下标)对线程进行编号;任务队列,与上层应用唯一的接口队列,负责存放上层应用的任务请求,采用双向循环链表实现,使用先进先出的管理方式,一个新任务首先会被投递到任务队列,然后管理线程从任务队列取得任务;空闲线程队列,存放空闲无任务的线程指针,采用双向循环链表实现,使用先进先出的管理方式,管理线程首先根据任务从空闲线程队列取得空闲线程,并让其执行任务回调,执行完后该线程回到空闲线程队列中;绑定任务线程队列,存放已绑定任务的线程指针,采用双向循环链表实现,管理线程首先根据任务从绑定任务线程队列取得相应绑定线程,并让其执行已绑定的任务回调,执行完后该线程回到绑定任务线程队列中,直到上层应用解除绑定,解除绑定后线程进入空闲线程队列;消息回调,线程池处理完上层应用任务请求后,将结果通过消息回调通知上层应用。
2.一种基于权利要求1所述线程池结构的视频监控平台系统的线程池实现方法,包括以下步骤1)上层应用通过线程池任务接口将任务投递添加到任务队列;2)管理线程从任务队列取得任务;3)根据任务类型分类处理,绑定线程任务,将任务与线程绑定,并将该线程添加到绑定任务线程队列,或者申请空闲线程执行任务,将执行任务线程到繁忙线程队列,分别执行相应任务回调;4)上述两个相应的线程执行任务后分别返回线程池;5)将处理任务结果通过消息回调向上层应用进行通知。
3.根据权利要求2所述的视频监控平台系统的线程池实现方法,其特征在于包括管理线程在内的所有线程空闲时均为挂起即睡眠状态,需要时才将其唤醒。
全文摘要
本发明的视频监控平台系统的线程池结构及实现方法,包括管理线程、任务队列、空闲线程队列、绑定任务线程队列、消息回调。管理线程从任务队列取得任务;根据任务类型分类处理,绑定线程任务,将任务与线程绑定,并将该线程添加到绑定任务线程队列,或者申请空闲线程执行任务,将执行任务线程添加到繁忙线程队列,线程执行任务后均会返回线程池;能够避免频繁创建和销毁线程带来的不稳定性以及开销;上层应用的错误不会引起线程池异常;本发明构建了一个通用的线程池体系结构,可以让开发人员方便、快捷地在这个体系上开发适用于大规模并发稳定的应用服务;线程池的结构具有高度的抽象性,从而简化了工作,提高了工作效率。
文档编号G06F9/46GK102262564SQ20111023430
公开日2011年11月30日 申请日期2011年8月16日 优先权日2011年8月16日
发明者于新强, 谢晓霞, 黄博 申请人:天津市天祥世联网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1