先说解决办法:

线程函数传参是和bind一样,需要加std::ref 以显式的引用。

以下是错误的传递方式:

vector<thread> threads1;
threads1.reserve(THREAD_NUMBER);
for (int i = 0; i < THREAD_NUMBER; ++i) {threads1.emplace_back(thread(saveImg, mtx1, cv1,1));}void saveImg(static mutex &mtx, condition_variable& cv, int i) {unique_lock<mutex> lck(mtx);while (true) {cv.wait(lck);cout << "GG" << i <<  endl;}
}

这里给线程函数传一个锁,一个条件变量,一个int。就算在线程函数这里加了&表明引用也是不行的。必须要在实例线程的时候加std::ref。
以下是正确方式:

vector<thread> threads1;
threads1.reserve(THREAD_NUMBER);
for (int i = 0; i < THREAD_NUMBER; ++i) {threads1.emplace_back(thread(saveImg, std::ref(mtx1), std::ref(cv1),1));}void saveImg(static mutex &mtx, condition_variable& cv, int i) {unique_lock<mutex> lck(mtx);while (true) {cv.wait(lck);cout << "GG" << i <<  endl;}
}

核心修改部分:

thread(saveImg, mtx1, cv1,1)

修改为:

thread(saveImg, std::ref(mtx1), std::ref(cv1),1)

C++多线程,线程函数传参显示没有重载函数接受4个参数相关推荐

  1. python 线程函数传参

    python 线程函数传参 from threading import Thread from time import sleep#含有参数的分支线程函数 def fun(sec,name):prin ...

  2. C++ CreateThread 线程函数传参

    HANDLE WINAPICreateThread(_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, // 内核对象的安全属性,一般传入NULL _ ...

  3. 函数传参string_JavaScript 高阶函数入门浅析

    原文:https://www.freecodecamp.org/news/a-quick-intro-to-higher-order-functions-in-javascript-1a014f89c ...

  4. 【嵌入式Linux应用开发】温湿度监控系统——多线程与温湿度的获取显示

    1. 概述 ​ 在前几篇的文章中,我们已经学习了LVGL界面绘制以及paho mqtt的同步客户端和异步客户端的操作,那么本篇就会综合前面的知识,加上Linux系统的多线程以及线程间通信的知识,将LV ...

  5. python笔记之强制函数以关键字参数传参

    最近学习python,学到了函数传参,看到了以下这个特殊情况,特此来做个笔记 def add(*, x, y): print(x, y) 以上函数定义后,该怎么传参?前面的那个*号是做什么用的? 我们 ...

  6. java如何实现不固定个数传参

    CreateTime--2017年9月15日14:42:40 Author:Marydon java如何实现不固定个数传参(定义实参个数可变的方法) 参考链接:原文链接 传统方法:为这个方法定义一个数 ...

  7. x64汇编第三讲,64位调用约定与函数传参.

    目录 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 二丶x64汇编 2.1汇编详解 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 在x86下我们汇编的传参如下: ...

  8. android电视设置hdmi输出,利用HDMI线实现多屏显示的设置方法!

    原标题:利用HDMI线实现多屏显示的设置方法! 利用HDMI线实现多屏显示的设置方法!下面从2个方面进行说明,具体的由HDMI线厂家怡万达电子为你分析介绍. 1.HDMI线接电视设置方法,如何设置多屏 ...

  9. C++函数传参int a,int *a,int a,const int a的区别

    C++函数传参int a,int &a,const int &a的区别 # 传参方式                  作用 int a 值传递 无法改变a的值 int *a 地址传递 ...

最新文章

  1. Java关键字synchronized详解
  2. 【原创】推荐广告入门:DeepCTR-Torch,基于深度学习的CTR预测算法库
  3. Mac 录制视频,并转为GIF格式
  4. python 压缩 解压
  5. 特别策划:视频会议协作平台的机会与技术挑战
  6. Minimizing Difference CodeForces - 1244E(贪心题)
  7. 对当前目录及子目录下的所有源码文件及Makefile打包
  8. [洛谷P3807]【模板】卢卡斯定理
  9. 【数据结构和算法笔记】数组(数组的储存方式和特殊矩阵的压缩储存)
  10. 利用 TypeConverter,转换字符串和各种类型只需写一个函数
  11. WCF服务编程-非WCF应用程序使用WCF服务
  12. chrome 下载东西 失败禁止_如何修复最常见的Google Chrome下载错误
  13. 解决W5500,DHCP获取IP地址失败的问题,移植官方例程需要特别注意!!!
  14. 计算机网络安全 填空题,计算机网络安全技术选择填空复习题
  15. node获取系统字体
  16. 蒙特卡洛算法及简单应用
  17. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.4
  18. HMI-48-【多媒体】Title界面实现 3
  19. 入门图形学:屏幕波爆特效
  20. 选型笔记之二极管选型

热门文章

  1. html酷炫电子时钟效果,纯js实现电子时钟特效
  2. java实现排兵布阵(回溯法)
  3. hoolilaw解读:在美国如何应对交通罚单
  4. 数据生产力崛起:新动能+新治理
  5. Vue获取当前的位置信息、经纬度
  6. C语言如何求最大值和最小值
  7. 浮窗---创建系统浮窗(可拖动)
  8. 【技法操作】UI界面设计,用PS绘制录音页面教程
  9. win10重新安装以太坊mist客户端
  10. 腾讯云数据库TDSQL-C(原CynosDB)的外网访问配置