thread技术openpose使⽤_openpose源码阅读总结
模板编程的好处;
⼀套处理流程,适⽤于多种数据类型,实现代码复⽤.
openpose这个项⽬所包含的不仅仅是姿态估计/⼈脸/⼿势关键点的定位算法;它所实现的⼀套多线程框架代码(⽤于组织各种任务的协同运⾏)同样也⾮常值得学习,由于这套框架使⽤了C++的模板机制\抽象接⼝技术,使得这套代码,可以为我所⽤.
抛开⾥⾯的算法实现,简要记录下openpose中多线程框架原理:
Datum---核⼼数据结构
Queue---worker从Queue队列中取数据,⼀个Queue可能是某个worker的输⼊源,⼀个worker也可以⽣成数据插⼊某个输出队列中;
Worker---⼯作类,处理的数据类型Datum
SubThread---⼦线程中运⾏的任务,⼀个subThread维护着⼀个Worker的列表,SubThread有四种类型:⽆输⼊⽆输出\仅有输⼊\仅有输出\有输⼊有输出.
Thread---线程类⼀个Thread维护这⼀个SubThread的列表,这个列表中的所有subThread在这个Thread建的⼦线程中运⾏;
ThreadManager----线程管理类,⼀个ThreadManager管理了队列列表和线程列表;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论