普通函数传参和成员函数传参

#include <iostream>
#include <thread>
#include <windows.h>
void func(int x) {for (int i = 1; i <= 10; i++) {printf("%d\n", x);Sleep(100);}
}class A{public:void func(int x) {for (int i = 1; i <= 10; i++) {printf("%d\n", 2);Sleep(100);}}
};
int main() {A a;std::thread(&A::func, &a, 2).detach(); // 成员函数多线程这样写std::thread(func, 1).detach();getchar(); // 如果主进程结束那么子线程也会死return 0;
}

生产者消费者

#include <iostream>
#include <thread>
#include <mutex>
#include <vector>
#include <windows.h>std::vector<int> data; // 临界区
std::mutex mux; // 全局互斥锁/**
“生产者-消费者”问题的实现,我的理解是:通过竞争互斥锁来间接实现对临界区的互斥访问。
同一时间段内,只有一个线程得到了 mux 互斥锁,那么接下来对临界区的操作自然也是互斥的,直到释放这个互斥锁。
**/
void product_thread(){while(true){std::unique_lock<std::mutex> lock(mux);if (data.size() >= 5) {lock.unlock();continue;}data.push_back(1);printf("----生产\n");lock.unlock();Sleep(200);}
}void consume_thread(){while (true){std::unique_lock<std::mutex> lock(mux);if(data.empty()) {lock.unlock();continue;}printf("消耗\n");data.pop_back();lock.unlock();Sleep(1000);}
}int main() {std::thread thread_product(&product_thread);std::thread thread (&consume_thread);thread_product.join();thread.join();return  0;
}

c++11 多线程传参和生产者消费者实现相关推荐

  1. [19/04/11-星期四] 多线程_并发协作(生产者/消费者模式_2种解决方案(管程法和信号灯法))...

    一.概念 多线程环境下,我们经常需要多个线程的并发和协作.这个时候,就需要了解一个重要的多线程并发协作模型"生产者/消费者模式". Ø 什么是生产者? 生产者指的是负责生产数据的模 ...

  2. python爬虫02-提升爬取效率、多线程,多线程传参,多进程,线程及线程池概念,协程,多任务异步协程,异步请求aiohttp模块,视频站工作原理

    1.提升爬取效率 使用多线程,多进程,携程,异步 2.多线程 进程是资源单位,每个进程,都会有一个默认的主线程 线程是执行单位 执行多线程需要导包: from threading import Thr ...

  3. 【Linux入门】多线程(线程概念、生产者消费者模型、消息队列、线程池)万字解说

    目录 1️⃣线程概念 什么是线程 线程的优点 线程的缺点 线程异常 线程异常 Linux进程VS线程 2️⃣线程控制 创建线程 获取线程的id 线程终止 等待线程 线程分离 3️⃣线程互斥 进程线程间 ...

  4. Linux 多线程编程(实现生产者消费者模型)

    Linux 多线程编程 线程分类 线程按照其调度者可以分为用户级线程和内核级线程两种. 内核级线程 在一个系统上实现线程模型的方式有好几种,因内核和用户空间提供的支持而有一定程度的级别差异.最简单的模 ...

  5. java多线程生产者与消费者问题_Java多线程详解之四:生产者消费者问题

    一.问题描述 生产者消费者问题(Producer-Consumer problem),也称有限缓冲区问题(Bounded-buffer promblem),是一个多线程同步问题的经典案例.对于一个固定 ...

  6. Java多线程(3)—生产者/消费者

    这个是一个典型的线程问题.生成者(Productor)生产商品并交给店员(Clerk),消费者(Customer)从店员处购买商品,店员一次性只能购买固定数量的产品,如果生产者试图生成更多的商品,店员 ...

  7. 多线程终极模式:生产者-消费者模式

    多线程de小事情 导航不迷路: 程序.进程以及线程的爱恨情仇 最简单实现多线程的方法(Thread) 简单易懂的多线程(通过实现Runnable接口实现多线程) 常用获取线程基本信息的方法(新手专属) ...

  8. 秒杀多线程第十篇 生产者消费者问题

    继经典线程同步问题之后,我们来看看生产者消费者问题及读者写者问题.生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消 ...

  9. Linux 系统应用编程——多线程经典问题(生产者-消费者)

    "生产者--消费者"问题是Linux多线程编程中的经典问题,主要是利用信号量处理线程间的同步和互斥问题. "生产者--消费者"问题描述如下: 有一个有限缓冲区( ...

最新文章

  1. python io流a+_Python基础——文件操作及IO流
  2. Hadoop生态Zookeeper安装
  3. AI助手智商测评Siri进步最大,无人驾驶打车服务已在美国试行
  4. httpserver
  5. bug经验-文件路径问题
  6. Oracle中动态SQL详解
  7. P1375 嵌套矩形
  8. HttpWatch工具简介及使用技巧(二)
  9. Delphi ArcEngine 创建比例尺
  10. 【论文解读】EMNLP2019 如何在Transformer中融入句法树信息?这里给出了一种解决方案...
  11. BZOJ5074 小B的数字
  12. python一行输出_#python版一行内容分行输出
  13. # 融云 SDK 新用户入群加载历史消息 记录融云 SDK 的一个小功能,分享一下 ## 背景 项目中有用到融云 SDK 中的群组功能,产品说需要新人入群的时候看到历史消息。 本来以为直接能获
  14. java 切割冒号_java split 冒号(java中split是什么意思啊)
  15. java坦克类的设计_纯JAVA坦克大战,可以做毕业设计
  16. 关于使用Kmeans函数RuntimeWarning: Explicit initial center position passed: performing only one init in KMe
  17. 赛轮转债上市价格预测
  18. 计算机音乐怎么去掉,怎么取消电脑的开机音乐
  19. Linux LCD设备驱动详解
  20. 探秘区块链之全局介绍

热门文章

  1. 成功解决AttributeError: ‘dict_values‘ object has no attribute ‘index‘
  2. TF之DCGAN:基于TF利用DCGAN测试自己的数据集并进行生成过程全记录
  3. CUMCM:05A长江水质综合评价与预测
  4. Py之imgaug:Python库之imgaug简介、安装、使用方法之详细攻略
  5. DL之HNN:基于HNN(subplot)将凌乱数字矩阵图像(模拟手写数字图片)实现转为最相近的阿拉伯数字
  6. AI:一个20年程序猿的学习资料大全—前端/后端/架构师/运维各种很多教程资料——只有你不想要的,没有你找不到的
  7. 成功解决PermissionError(权限拒绝解决答案集锦): [Errno 13] Permission denied: ‘f:\\program files\\python\\python36\
  8. Lesson 02:变量、数据类型
  9. WebService 与 DCOM / Corba 是什么关系?
  10. esp8266make相关文件改进