当前位置: 首页 > news >正文

C++ 多线程使用

使用多线程思考

  1. 若程序中存在耗时操作,且耗时操作数据不与其他发生交互,如下载数据,那么直接进行线程操作即可。
  2. 如果耗时操作需要进行数据交互,而且耗时操作能分成并行的两部分或多部分,那么也可以进行多线程进行加速(不能分成两部分并行,可以尝试改变业务逻辑是否能拆成并行).

人脸跟踪多线程使用

  1. 若跟踪逻辑为先检测人脸,再根据人脸检测结果进行模板匹配,那么是串行结构,无法并行。
  2. 若是将检测人脸和模板匹配结果进行分离,然后将模板匹配结果与人脸检测框进行IOU计算,那么就可以进行并行拆分。

人脸跟踪并行代码

std::thread thread1(tracking_corrfilter, frame,templ,ref(first_rect),2);
std::thread thread2(&UltraFace::detect, &face,frame,ref(face_list));

thread1.join();
thread2.join();
  1. 对于函数内部修改的变量要使用ref,否则会报错: error: no type named ‘type’ in ‘struct std::__invoke_resul
  2. 对于使用别的类的方法,要使用&符号,&UltraFace::detect是类以及方法名字, &face是类的实例变量。
  3. 对于使用当前文件中方法,第一个为方法名字如tracking_corrfilter,后续为方法的参数。
http://www.dtcms.com/a/4202.html

相关文章:

  • Java学习之路 —— IO、特殊文件
  • SpringBoot请求参数与响应返回值,ResponseEntity<T>自定义响应
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • Postman+Newman+Jenkins实现接口测试持续集成
  • C#中.NET 7.0 Windows窗体应用通过EF访问新建数据库
  • Java NIO 详解
  • 蓝牙耳机仓设计的单芯片解决方案
  • C++中tuple数据结构使用
  • 编译中的 CMP0148 警告
  • 基于STC12C5A60S2系列1T 8051单片机的数模芯片DAC0832实现数模转换应用
  • Python---函数的作用,定义,使用步骤(调用步骤)
  • 《C++避坑神器·二十二》VS能正常运行程序,但运行exe程序无响应解决办法
  • Spring条件注解@Conditoinal+ Profile环境切换应用@Profile
  • SQL之开窗函数
  • Git常用操作-MD
  • 基于pytest-bdd的项目目录结构和命名规范
  • Jmeter 性能测试基础!
  • Vertx-EventBus篇
  • 如何通过数据治理来提升业务价值——业务场景治理
  • AI视频检索丨历史视频标签化,助力重要事件高效溯源
  • oracle 不支持的字符集 orai18n.jar ZHS16GBK 异常问题解决
  • IDEA写mybatis程序,java.io.IOException:Could not find resource mybatis-config.xml
  • 聊一聊前端面临的安全威胁与解决对策
  • 使用 webpack 打包 express 应用
  • 什么是Vue的前端微服务架构(Micro Frontends)?
  • AR贴纸特效SDK,无缝贴合的虚拟体验
  • 2.5k的ChatGPT-Java版SDK升级1.1.2-beta0支持GPT-4V、Dall-e-3模型、ToolCalls、微调Job、TTS...
  • Docker启动SRS流媒体服务器
  • demo(三)eurekaribbonhystrix----服务降级熔断
  • Spring 的面向切面编程(AOP)的使用场景有哪些?