使用多线程思考
- 若程序中存在耗时操作,且耗时操作数据不与其他发生交互,如下载数据,那么直接进行线程操作即可。
- 如果耗时操作需要进行数据交互,而且耗时操作能分成并行的两部分或多部分,那么也可以进行多线程进行加速(不能分成两部分并行,可以尝试改变业务逻辑是否能拆成并行).
人脸跟踪多线程使用
- 若跟踪逻辑为先检测人脸,再根据人脸检测结果进行模板匹配,那么是串行结构,无法并行。
- 若是将检测人脸和模板匹配结果进行分离,然后将模板匹服务器托管网配结果与人脸检测框进行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();
- 对于函数内部修改的变量要使用ref,否则会报错: error: no type named 服务器托管网‘type’ in ‘struct std::__invoke_resul
- 对于使用别的类的方法,要使用&符号,&UltraFace::detect是类以及方法名字, &face是类的实例变量。
- 对于使用当前文件中方法,第一个为方法名字如tracking_corrfilter,后续为方法的参数。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
Xterm是一个基于X Window System的终端仿真器(Terminal Emulator)。Xterm最初由MIT开发,它允许用户在X Window环境下运行文本终端程序。Xterm提供了一个图形界面终端,使用户能够在图形桌面环境中运行命令行程序。而…