CN102262564A - 视频监控平台***的线程池结构及实现方法 - Google Patents
视频监控平台***的线程池结构及实现方法 Download PDFInfo
- Publication number
- CN102262564A CN102262564A CN 201110234302 CN201110234302A CN102262564A CN 102262564 A CN102262564 A CN 102262564A CN 201110234302 CN201110234302 CN 201110234302 CN 201110234302 A CN201110234302 A CN 201110234302A CN 102262564 A CN102262564 A CN 102262564A
- Authority
- CN
- China
- Prior art keywords
- thread
- task
- formation
- binding
- pool
- 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.)
- Pending
Links
Images
Landscapes
- Closed-Circuit Television Systems (AREA)
Abstract
本发明的视频监控平台***的线程池结构及实现方法,包括:管理线程、任务队列、空闲线程队列、绑定任务线程队列、消息回调。管理线程从任务队列取得任务;根据任务类型分类处理,绑定线程任务,将任务与线程绑定,并将该线程添加到绑定任务线程队列,或者申请空闲线程执行任务,将执行任务线程添加到繁忙线程队列,线程执行任务后均会返回线程池;能够避免频繁创建和销毁线程带来的不稳定性以及开销;上层应用的错误不会引起线程池异常;本发明构建了一个通用的线程池体系结构,可以让开发人员方便、快捷地在这个体系上开发适用于大规模并发稳定的应用服务;线程池的结构具有高度的抽象性,从而简化了工作,提高了工作效率。
Description
技术领域
本发明涉及视频监控的技术领域,具体说是一种适用于多线程处理环境、能够提供稳定运行的视频监控平台***的线程池结构及实现方法。
背景技术
Linux作为服务器的***平台,一般都须要求高可靠的7*24小时运行的应用服务程序,其中网络通信服务又占了很大的比重,这就对这些应用***的并发处理能力、稳定性等方面提出了很高的要求。通常情况下,为了满足应用程序在性能上的要求,一般会采用多线程模式,但这种模式消耗在创建和销毁线程上的时间或者资源太多,所以采用线程池方式。
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在有需求时唤醒线程执行这些任务。线程池的线程都是后台线程.每个线程都使用配置的堆栈大小,以默认的优先级运行,并处于多线程单元中.适用于boss/work、生产者/消费者等线程模型。
如果线程池所有线程都拥有任务时,线程池将创建一定数量的新线程,但线程的数目永远不会超过最大值。
发明内容
本发明要解决的技术问题是提供一种适用于多线程处理环境、能够提供稳定运行的视频监控平台***的线程池结构及实现方法。
本发明为解决公知技术中存在的技术问题所采取的技术方案是:
本发明的视频监控平台***的线程池结构,包括:管理线程,线程池中唯一能够操作线程以及线程队列的线程,负责处理任务队列里的所有任务,根据任务创建销毁线程,操作相应的线程队列;线程指针数组,存放所有线程指针,便于线程池销毁时能集中销毁线程,采用指针数据方式,申请一个线程即放入一个线程,通过序号(即数组下标)对线程进行编号;任务队列,与上层应用唯一的接口队列,负责存放上层应用的任务请求,采用双向循环链表实现,使用先进先出的管理方式,一个新任务首先会被投递到任务队列,然后管理线程从任务队列取得任务;空闲线程队列,存放空闲无任务的线程指针,采用双向循环链表实现,使用先进先出的管理方式,管理线程首先根据任务从空闲线程队列取得空闲线程,并让其执行任务回调,执行完后该线程回到空闲线程队列中;绑定任务线程队列,存放已绑定任务的线程指针,采用双向循环链表实现,管理线程首先根据任务从绑定任务线程队列取得相应绑定线程,并让其执行已绑定的任务回调,执行完后该线程回到绑定任务线程队列中,直到上层应用解除绑定,解除绑定后线程进入空闲线程队列;消息回调,线程池处理完上层应用任务请求后,将结果通过消息回调通知上层应用。
视频监控平台***的线程池实现方法,包括以下步骤:
1)上层应用通过线程池任务接口将任务投递添加到任务队列;
2)管理线程从任务队列取得任务;
3)根据任务类型分类处理,绑定线程任务,将任务与线程绑定,并将该线程添加到绑定任务线程队列,或者申请空闲线程执行任务,将执行任务线程到繁忙线程队列,分别执行相应任务回调;
4)上述两个相应的线程执行任务后分别返回线程池;
5)将处理任务结果通过消息回调向上层应用进行通知。
包括管理线程在内的所有线程空闲时均为挂起即睡眠状态,需要时才将其唤醒。
本发明具有的优点和积极效果是:
本发明的视频监控平台***的线程池结构及实现方法,能够避免频繁创建和销毁线程带来的不稳定性以及开销;上层应用的错误不会引起线程池异常;本发明构建了一个通用的线程池体系结构,可以让开发人员方便、快捷地在这个体系上开发适用于大规模并发稳定的应用服务;线程池的结构具有高度的抽象性,这样开发人员不用再关心线程的具体处理或管理逻辑,只需关心具体的客户请求任务处理,从而简化了工作,提高了工作效率;本发明的视频监控平台***的线程池结构及实现方法适用于多种线程模型,例如Boss/Work、生产者/消费者等。
附图说明
图1是本发明的视频监控平台***的线程池的示意图。
具体实施方式
以下参照附图及实施例对本发明进行详细的说明。
图1是本发明的视频监控平台***的线程池的示意图。
如图1所示,本发明的视频监控平台***的线程池结构,包括:管理线程,线程池中唯一能够操作线程以及线程队列的线程,负责处理任务队列里的所有任务,根据任务创建销毁线程,操作相应的线程队列;线程指针数组,存放所有线程指针,便于线程池销毁时能集中销毁线程,采用指针数据方式,申请一个线程即放入一个线程,通过序号(即数组下标)对线程进行编号;任务队列,与上层应用唯一的接口队列,负责存放上层应用的任务请求,采用双向循环链表实现,使用先进先出的管理方式,一个新任务首先会被投递到任务队列,然后管理线程从任务队列取得任务;空闲线程队列,存放空闲无任务的线程指针,采用双向循环链表实现,使用先进先出的管理方式,管理线程首先根据任务从空闲线程队列取得空闲线程,并让其执行任务回调,执行完后该线程回到空闲线程队列中;绑定任务线程队列,存放已绑定任务的线程指针,采用双向循环链表实现,管理线程首先根据任务从绑定任务线程队列取得相应绑定线程,并让其执行已绑定的任务回调,执行完后该线程回到绑定任务线程队列中,直到上层应用解除绑定,解除绑定后线程进入空闲线程队列;消息回调,线程池处理完上层应用任务请求后,将结果通过消息回调通知上层应用。
视频监控平台***的线程池实现方法,包括以下步骤:
1)上层应用通过线程池任务接口将任务投递添加到任务队列;
2)管理线程从任务队列取得任务;
3)根据任务类型分类处理,绑定线程任务,将任务与线程绑定,并将该线程添加到绑定任务线程队列,或者申请空闲线程执行任务,将执行任务线程到繁忙线程队列,分别执行相应任务回调;
4)上述两个相应的线程执行任务后分别返回线程池;
5)将处理任务结果通过消息回调向上层应用进行通知。
包括管理线程在内的所有线程空闲时均为挂起即睡眠状态,需要时才将其唤醒。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例公开如上,然而,并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当然会利用揭示的技术内容作出些许更动或修饰,成为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均属于本发明技术方案的范围内。
Claims (3)
1.一种视频监控平台***的线程池结构,其特征在于,包括:管理线程,线程池中唯一能够操作线程以及线程队列的线程,负责处理任务队列里的所有任务,根据任务创建销毁线程,操作相应的线程队列;线程指针数组,存放所有线程指针,便于线程池销毁时能集中销毁线程,采用指针数据方式,申请一个线程即放入一个线程,通过序号(即数组下标)对线程进行编号;任务队列,与上层应用唯一的接口队列,负责存放上层应用的任务请求,采用双向循环链表实现,使用先进先出的管理方式,一个新任务首先会被投递到任务队列,然后管理线程从任务队列取得任务;空闲线程队列,存放空闲无任务的线程指针,采用双向循环链表实现,使用先进先出的管理方式,管理线程首先根据任务从空闲线程队列取得空闲线程,并让其执行任务回调,执行完后该线程回到空闲线程队列中;绑定任务线程队列,存放已绑定任务的线程指针,采用双向循环链表实现,管理线程首先根据任务从绑定任务线程队列取得相应绑定线程,并让其执行已绑定的任务回调,执行完后该线程回到绑定任务线程队列中,直到上层应用解除绑定,解除绑定后线程进入空闲线程队列;消息回调,线程池处理完上层应用任务请求后,将结果通过消息回调通知上层应用。
2.一种基于权利要求1所述线程池结构的视频监控平台***的线程池实现方法,包括以下步骤:
1)上层应用通过线程池任务接口将任务投递添加到任务队列;
2)管理线程从任务队列取得任务;
3)根据任务类型分类处理,绑定线程任务,将任务与线程绑定,并将该线程添加到绑定任务线程队列,或者申请空闲线程执行任务,将执行任务线程到繁忙线程队列,分别执行相应任务回调;
4)上述两个相应的线程执行任务后分别返回线程池;
5)将处理任务结果通过消息回调向上层应用进行通知。
3.根据权利要求2所述的视频监控平台***的线程池实现方法,其特征在于:包括管理线程在内的所有线程空闲时均为挂起即睡眠状态,需要时才将其唤醒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110234302 CN102262564A (zh) | 2011-08-16 | 2011-08-16 | 视频监控平台***的线程池结构及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110234302 CN102262564A (zh) | 2011-08-16 | 2011-08-16 | 视频监控平台***的线程池结构及实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102262564A true CN102262564A (zh) | 2011-11-30 |
Family
ID=45009201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110234302 Pending CN102262564A (zh) | 2011-08-16 | 2011-08-16 | 视频监控平台***的线程池结构及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102262564A (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164267A (zh) * | 2013-03-29 | 2013-06-19 | 汉柏科技有限公司 | 无锁消息队列实现方法 |
CN103218264A (zh) * | 2013-03-26 | 2013-07-24 | 广东威创视讯科技股份有限公司 | 基于线程池的多线程有限状态机切换方法及装置 |
CN103473129A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 线程数目可伸缩的多任务队列调度***及其实现方法 |
WO2014082562A1 (en) * | 2012-11-29 | 2014-06-05 | Tencent Technology (Shenzhen) Company Limited | Method, device, and system for information processing based on distributed buses |
CN106095546A (zh) * | 2016-06-01 | 2016-11-09 | 深圳市永兴元科技有限公司 | 云计算平台的任务管理方法及装置 |
CN106371907A (zh) * | 2016-08-30 | 2017-02-01 | 乐视控股(北京)有限公司 | 任务的执行方法及装置 |
CN106383749A (zh) * | 2016-09-14 | 2017-02-08 | 郑州云海信息技术有限公司 | 一种线程管理方法及装置 |
CN106502773A (zh) * | 2016-10-09 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 具有同步回调信息功能的数据异步处理方法及模块 |
CN106547612A (zh) * | 2016-10-18 | 2017-03-29 | 深圳怡化电脑股份有限公司 | 一种多任务处理方法及装置 |
CN106559447A (zh) * | 2015-09-25 | 2017-04-05 | 中兴通讯股份有限公司 | Jslee容器的业务处理方法及*** |
CN106648646A (zh) * | 2016-12-13 | 2017-05-10 | 深圳市元征软件开发有限公司 | 线程管理方法及装置 |
CN106874083A (zh) * | 2017-01-03 | 2017-06-20 | 杭州医学院 | 一种数采***人机接口任务调度方法 |
CN107491350A (zh) * | 2017-09-05 | 2017-12-19 | 武汉斗鱼网络科技有限公司 | 接口任务调用方法及装置 |
CN107832146A (zh) * | 2017-10-27 | 2018-03-23 | 北京计算机技术及应用研究所 | 高可用集群***中的线程池任务处理方法 |
CN107945430A (zh) * | 2017-11-24 | 2018-04-20 | 上海动联信息技术股份有限公司 | 一种用于智能pos机的基于串口的双向并发通讯方法 |
CN108616606A (zh) * | 2018-08-01 | 2018-10-02 | 湖南恒茂高科股份有限公司 | 一种物联网通信方法及装置 |
CN108810557A (zh) * | 2017-07-10 | 2018-11-13 | 北京视联动力国际信息技术有限公司 | 一种视频处理方法、装置、电子设备和存储介质 |
CN109388485A (zh) * | 2018-09-26 | 2019-02-26 | 广州虎牙信息科技有限公司 | 一种任务执行线程的处理方法、装置、设备及存储介质 |
CN112035255A (zh) * | 2020-08-28 | 2020-12-04 | 北京浪潮数据技术有限公司 | 线程池资源管理任务处理方法、装置、设备及存储介质 |
CN112148493A (zh) * | 2020-09-30 | 2020-12-29 | 武汉中科通达高新技术股份有限公司 | 一种流媒体任务管理方法及装置、数据服务器 |
CN113391896A (zh) * | 2021-06-15 | 2021-09-14 | 北京京东振世信息技术有限公司 | 任务处理方法及装置、存储介质及电子设备 |
CN113722078A (zh) * | 2021-11-02 | 2021-11-30 | 西安热工研究院有限公司 | 一种基于线程池高并发数据库访问方法、***及设备 |
CN116578404A (zh) * | 2023-07-07 | 2023-08-11 | 北京趋动智能科技有限公司 | 线程管理方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588316A (zh) * | 2004-06-29 | 2005-03-02 | 北京大学 | 应用服务器的性能优化方法 |
CN101599027A (zh) * | 2009-06-30 | 2009-12-09 | 中兴通讯股份有限公司 | 一种线程池管理方法及其*** |
CN101739293A (zh) * | 2009-12-24 | 2010-06-16 | 航天恒星科技有限公司 | 一种基于多线程的卫星数据产品生产任务并行调度方法 |
CN101738997A (zh) * | 2009-10-30 | 2010-06-16 | 深圳市科陆电子科技股份有限公司 | 多线程电力负控***及控制方法 |
WO2011012157A1 (en) * | 2009-07-28 | 2011-02-03 | Telefonaktiebolaget L M Ericsson (Publ) | Apparatus and method for processing events in a telecommunications network |
-
2011
- 2011-08-16 CN CN 201110234302 patent/CN102262564A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588316A (zh) * | 2004-06-29 | 2005-03-02 | 北京大学 | 应用服务器的性能优化方法 |
CN101599027A (zh) * | 2009-06-30 | 2009-12-09 | 中兴通讯股份有限公司 | 一种线程池管理方法及其*** |
WO2011012157A1 (en) * | 2009-07-28 | 2011-02-03 | Telefonaktiebolaget L M Ericsson (Publ) | Apparatus and method for processing events in a telecommunications network |
CN101738997A (zh) * | 2009-10-30 | 2010-06-16 | 深圳市科陆电子科技股份有限公司 | 多线程电力负控***及控制方法 |
CN101739293A (zh) * | 2009-12-24 | 2010-06-16 | 航天恒星科技有限公司 | 一种基于多线程的卫星数据产品生产任务并行调度方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014082562A1 (en) * | 2012-11-29 | 2014-06-05 | Tencent Technology (Shenzhen) Company Limited | Method, device, and system for information processing based on distributed buses |
CN103218264A (zh) * | 2013-03-26 | 2013-07-24 | 广东威创视讯科技股份有限公司 | 基于线程池的多线程有限状态机切换方法及装置 |
CN103164267A (zh) * | 2013-03-29 | 2013-06-19 | 汉柏科技有限公司 | 无锁消息队列实现方法 |
CN103473129A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 线程数目可伸缩的多任务队列调度***及其实现方法 |
CN103473129B (zh) * | 2013-09-18 | 2017-01-18 | 深圳前海大数金融服务有限公司 | 线程数目可伸缩的多任务队列调度***及其实现方法 |
CN106559447A (zh) * | 2015-09-25 | 2017-04-05 | 中兴通讯股份有限公司 | Jslee容器的业务处理方法及*** |
CN106095546A (zh) * | 2016-06-01 | 2016-11-09 | 深圳市永兴元科技有限公司 | 云计算平台的任务管理方法及装置 |
CN106371907A (zh) * | 2016-08-30 | 2017-02-01 | 乐视控股(北京)有限公司 | 任务的执行方法及装置 |
CN106383749A (zh) * | 2016-09-14 | 2017-02-08 | 郑州云海信息技术有限公司 | 一种线程管理方法及装置 |
CN106502773A (zh) * | 2016-10-09 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 具有同步回调信息功能的数据异步处理方法及模块 |
CN106547612B (zh) * | 2016-10-18 | 2020-10-20 | 深圳怡化电脑股份有限公司 | 一种多任务处理方法及装置 |
CN106547612A (zh) * | 2016-10-18 | 2017-03-29 | 深圳怡化电脑股份有限公司 | 一种多任务处理方法及装置 |
CN106648646A (zh) * | 2016-12-13 | 2017-05-10 | 深圳市元征软件开发有限公司 | 线程管理方法及装置 |
CN106874083A (zh) * | 2017-01-03 | 2017-06-20 | 杭州医学院 | 一种数采***人机接口任务调度方法 |
CN106874083B (zh) * | 2017-01-03 | 2019-06-28 | 杭州医学院 | 一种数采***人机接口任务调度方法 |
CN108810557A (zh) * | 2017-07-10 | 2018-11-13 | 北京视联动力国际信息技术有限公司 | 一种视频处理方法、装置、电子设备和存储介质 |
CN107491350A (zh) * | 2017-09-05 | 2017-12-19 | 武汉斗鱼网络科技有限公司 | 接口任务调用方法及装置 |
CN107491350B (zh) * | 2017-09-05 | 2018-08-10 | 武汉斗鱼网络科技有限公司 | 接口任务调用方法及装置 |
CN107832146A (zh) * | 2017-10-27 | 2018-03-23 | 北京计算机技术及应用研究所 | 高可用集群***中的线程池任务处理方法 |
CN107945430A (zh) * | 2017-11-24 | 2018-04-20 | 上海动联信息技术股份有限公司 | 一种用于智能pos机的基于串口的双向并发通讯方法 |
CN108616606B (zh) * | 2018-08-01 | 2021-10-26 | 湖南恒茂高科股份有限公司 | 一种物联网通信方法及装置 |
CN108616606A (zh) * | 2018-08-01 | 2018-10-02 | 湖南恒茂高科股份有限公司 | 一种物联网通信方法及装置 |
CN109388485A (zh) * | 2018-09-26 | 2019-02-26 | 广州虎牙信息科技有限公司 | 一种任务执行线程的处理方法、装置、设备及存储介质 |
CN112035255A (zh) * | 2020-08-28 | 2020-12-04 | 北京浪潮数据技术有限公司 | 线程池资源管理任务处理方法、装置、设备及存储介质 |
CN112148493A (zh) * | 2020-09-30 | 2020-12-29 | 武汉中科通达高新技术股份有限公司 | 一种流媒体任务管理方法及装置、数据服务器 |
CN113391896A (zh) * | 2021-06-15 | 2021-09-14 | 北京京东振世信息技术有限公司 | 任务处理方法及装置、存储介质及电子设备 |
CN113391896B (zh) * | 2021-06-15 | 2023-09-22 | 北京京东振世信息技术有限公司 | 任务处理方法及装置、存储介质及电子设备 |
CN113722078A (zh) * | 2021-11-02 | 2021-11-30 | 西安热工研究院有限公司 | 一种基于线程池高并发数据库访问方法、***及设备 |
CN116578404A (zh) * | 2023-07-07 | 2023-08-11 | 北京趋动智能科技有限公司 | 线程管理方法、装置、存储介质及电子设备 |
CN116578404B (zh) * | 2023-07-07 | 2024-01-19 | 北京趋动智能科技有限公司 | 线程管理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102262564A (zh) | 视频监控平台***的线程池结构及实现方法 | |
US8381212B2 (en) | Dynamic allocation and partitioning of compute nodes in hierarchical job scheduling | |
US8140668B2 (en) | Pre-scheduling the timelines of virtual machines | |
CN107025139A (zh) | 一种基于云计算的高性能计算调度框架 | |
CN101694633A (zh) | 计算机作业调度设备、方法及*** | |
US7493436B2 (en) | Interrupt handling using simultaneous multi-threading | |
US20150095917A1 (en) | Distributed uima cluster computing (ducc) facility | |
CN104572290A (zh) | 消息处理线程的控制方法及装置 | |
CN101464810A (zh) | 服务程序处理方法及服务器 | |
US11182217B2 (en) | Multilayered resource scheduling | |
US8671306B2 (en) | Scaling out a messaging system | |
US20200186594A1 (en) | Rule-based action triggering in a provider network | |
CN102902589A (zh) | 一种集群mic作业的管理及调度方法 | |
CN102833310A (zh) | 一种基于虚拟化技术的工作流引擎集群*** | |
Simoncelli et al. | Stream-monitoring with blockmon: convergence of network measurements and data analytics platforms | |
US9832137B1 (en) | Provisioning system and method for a distributed computing environment using a map reduce process | |
Frantz et al. | An efficient orchestration engine for the cloud | |
CN113424152A (zh) | 多租户分布式***中的基于工作流的调度和批处理 | |
Megino et al. | Managing the atlas grid through harvester | |
CN104468710A (zh) | 一种混合大数据处理***及处理方法 | |
Liu et al. | KubFBS: A fine‐grained and balance‐aware scheduling system for deep learning tasks based on kubernetes | |
CN103514036A (zh) | 一种用于事件触发和批量处理的调度***和方法 | |
CN103019844B (zh) | 一种支持多线程调用mpi函数的方法和装置 | |
CN102681885A (zh) | 一种业务分离的媒资*** | |
CN105700949A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111130 |