C++多线程学习[三]:成员函数作为线程入口

一、成员函数作为线程入口

#include<iostream>
#include<thread>
#include<string>using namespace std;class Mythread
{
public:string str;void Test(){cout << str << endl;}
};
int main()
{Mythread test;test.str = "Test";thread t = thread(&Mythread::Test, &test);t.join();return 0;
}

二、简单的线程封装

#include<iostream>
#include<thread>
#include<string>using namespace std;class Mythread
{
public:void Start(){is_exit_ = false;th_ = thread(&Mythread::Main,this);}void Wait(){if (th_.joinable())//检测线程是否已经结束th_.join();}void Stop(){is_exit_ = true;Wait(); }bool is_exit() { return is_exit_; }
private:virtual void Main() = 0;thread th_;bool is_exit_ = false;
};class M_thread : public Mythread
{
public:void Main() override{cout << "Thread is begin" << endl;while (!is_exit()){this_thread::sleep_for(1s);cout << "." << flush;}}
};
int main()
{M_thread th;th.Start();this_thread::sleep_for(10s);th.Stop();th.Wait();return 0;
}

三、lambda临时函数作为线程入口

#include<iostream>
#include<thread>
#include<string>
using namespace std;
class Test
{
public:void Start(){thread th = thread([this]() {cout <<s << endl;});th.join();}
private:string s = "Test class`s lambda";
};int main()
{thread th([]() {cout << "Test lambda" << endl; });th.join();Test t;t.Start();return 0;
}

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f095c576c9a243a3a3c7639cc6fd6f92.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据-hive函数与mysql函数的辨析及练习-将多行聚合成一行

目录 1. &#x1f959;collect_list: 聚合-不去重 2. &#x1f959;collect_set(col): 聚合-去重 3. &#x1f959;mysql的聚合函数-group_concat 4. leetcode练习题 1. &#x1f959;collect_list: 聚合-不去重 将组内的元素收集成数组 不会去重 2. &#x1f959;collec…

var、let、const 之间的区别

var、let、const 之间的区别 var 在 ES5 中 , 顶层对象的属性和全局变量是等价的 , 用 var 声明的变量既是全局变量 , 也是顶层变量。 注意 : 顶层对象 , 在浏览器环境指的是 window 对 象 , 在 Node 指的是 global 对象 var a 10; console.log(window.a) // 10使用 var 声…

mac 上 ssh: connect to host localhost port 22: Connection refused

1。 问题 在搭建hadoop环境的时候 发现ssh localhost 在报错 2. 解决 打开系统设置 -> 共享 -> -> 在左边服务中选择 远程登录 注意红框这些选项慎重选择&#xff01;&#xff01;&#xff01; 修改后&#xff0c;在终端再次 ssh localhost 发现登录成功了 如果…

科大讯飞星火大模型接入API js 部分 接口 安装注意事项

下载以下链接例子运行程序 https://xfyun-doc.xfyun.cn/static%2F16968175055332330%2Fspark_js_demo.zip 官网给的说明 准备 1.在demo中填写APPID、APISecret、APIKey&#xff0c;可到控制台-我的应用-大模型页面获取 2.安装nodejs 本地运行 1.打开cmd&#xff0c;进入dem…

QT上位机开发(权限管理)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 如果只是简单的工具软件&#xff0c;其实是没有权限管理这么一说的。比如说&#xff0c;串口工具、485工具之类的软件&#xff0c;其实根本不存在所…

MOOSE相关滤波跟踪算法(个人学习笔记)

MOOSE 论文标题 “Visual Object Tracking using Adaptive Correlation Filters” 原文地址 用滤波器对目标外观进行建模&#xff0c;并通过卷积操作来执行跟踪。 参考阅读&#xff1a; 目标跟踪经典算法——MOSSE&#xff08;Minimum Output Sum Square Error&#xff09…

聊天机器人之接入智能回复(四)

智能回复实现思路 目前市场上有许多大语言模型&#xff0c;他能帮助我们更好的解决问题或者陪伴我们聊天。最先兴起的就是OpenAI的ChatGPT&#xff0c;但是我们国内使用不太方便。所以这里我使用咱们国内的平台做一个简单展示。 首先这里咱们使用的是讯飞星火认知大模型&…

力扣题目超出时间限制,String和StringBuilder

2182. 构造限制重复的字符串 简单说下遇到的问题&#xff0c;代码就不细说了&#xff08;在最后&#xff09;&#xff0c;遇到只有超出时间限制的问题&#xff0c;然后看那案例真的无语&#xff0c;但再怎么计算我代码的时间复杂度&#xff0c;大概也就是O&#xff08;n&#…

Bean作用域及生命周期

关于Bean对象&#xff0c;在将其存储到spring中以后&#xff0c;在使用或读取该Bean对象时&#xff0c;如果该对象是公有的&#xff0c;难免就会出现被一方修改&#xff0c;从而影响另外一方读取到的对象准确性的情况。因此了解Bean的作用域和生命周期就是十分必要的了。 首先…

Fedora Linux 中安装 nginx

Fedora 35 中安装 nginx 的方法非常简单。 运行下面的命令&#xff1a; sudo dnf install nginx 在提示你需要确认的地方&#xff0c;输入 y 后回车即可。 开机自动启动 如果你希望在你的操作系统重启的时候自动启动 nginx&#xff0c;请输入下面的命令&#xff1a; syst…

【昕宝爸爸小模块】如何让Java的线程池顺序执行任务

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你&#x1f44d;点赞、&#x1f5c2;️收藏、加❤️关注哦。 本文章CSDN首发&#xff0c;欢迎转载&#xff0c;要注明出处哦&#xff01; 先感谢优秀的你能认真的看完本文&…

文本翻译GUI程序,实现简单的英汉互译

项目地址&#xff1a;mendianyu/txtTranslate: 文本翻译GUI程序&#xff0c;实现简单的英汉互译 (github.com) 文本翻译GUI程序&#xff0c;实现简单的英汉互译 项目结构 三个java文件加一个pom文件 项目运行效果 语言可选择en(英语) zh(汉语) auto(自动识别&#xff0c;仅源语…

序章 熟悉战场篇—了解vue的基本操作

了解vue 的基本目录&#xff1a; dist 是打包后存放的目录(后续可以改)node_modules 是依赖包public 是静态index页面src 是存放文件的目录assets 是存放静态资源的目录components 是存放组件的目录views 是存放页面文件的目录&#xff08;没有views 自己新建一个&#xff09;A…

使用FreeBASIC设计8051单片机汇编编译器

在STC论坛上看到有人用C语言实现8051汇编编译器&#xff08;源码&#xff09;&#xff0c;好奇下&#xff0c;试着用FB写了一下。 基本原理就是通过分析汇编文件然后转换为机器码。以下是51汇编与机器码对应的表格&#xff08;数据来自网络&#xff0c;如果发现有误请联系QQ149…

为什么mysql的索引结构用B+树而不用skipList?

【学习笔记】B树和skipList的时间复杂度都是O(log n)&#xff0c;为什么mysql底层要用B树而不用skipList&#xff1f;_推导b树的查询效率为什么是o(logn)-CSDN博客 1.b树的非叶子节点存的是数据页地址&#xff0c;而跳表存的是真实数据&#xff0c;所以&#xff0c;在相同内存…

【InternLM 大模型实战】第四课

XTuner 大模型单卡低成本微调实战 FINETUNE简介指令跟随微调增量预训练微调LoRA & QLoRA XTuner简介功能亮点适配多种生态适配多种硬件 8GB 显卡玩转LLMFlash AttentionDeepSpeed ZeRO 动手实战环节环境配置微调准备配置文件模型下载数据集下载修改配置文件开始微调将得到的…

监督学习 - 神经网络(Neural Networks)

什么是机器学习 神经网络&#xff08;Neural Networks&#xff09;&#xff0c;也称为人工神经网络&#xff08;Artificial Neural Networks&#xff0c;ANNs&#xff09;是一种受到生物神经网络启发而设计的机器学习模型。神经网络由神经元&#xff08;或节点&#xff09;组成…

HTML标签(一)

目录 HTML语法规范 基本语法概述 标签关系 HTML基本结构标签 第一个HTML网页 开发工具 VSCode的使用&#xff1a; VScode工具生成骨架标签新增代码 文档类型声明标签 lang语言种类 字符集 总结 HTML常用标签 标签语义 标题标签 段落标签 换行标签 文本格式化…

unity urp 视差卡牌

总体效果大概四层&#xff0c;从后往前排序为&#xff1a;卡背、背景、画像、边框 首先卡背比较简单&#xff0c;只要判断如果网格的背面就直接采样卡背图片展示即可 资源准备&#xff1a; 然后是背景&#xff0c;网上找到一张这样的图。 但他还不符合要求&#xff0c;我们的…

Tomcat源码解析(一): Tomcat整体架构

Tomcat源码系列文章 Tomcat源码解析(一)&#xff1a; Tomcat整体架构 目录 一、Tomcat整体架构1、Tomcat两个核心组件功能2、Tomcat支持的多种I/O模型和应用层协议 二、Connector连接器1、连接器功能汇总2、ProtocolHandler组件2.1、Endpoint2.2、Processor 3、Adapter组件 三…