news 2026/6/10 12:53:09

std::thread创建线程访问类成员

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
std::thread创建线程访问类成员

方法一:std::bind + 成员函数

class TaskHelp { public: TaskHelp() = default; ~TaskHelp() { StopTask(); } public: // 线程函数 void ThreadFunc() { // todo 其他事项 // 访问类成员 std::cout << m_status.c_str() <<std::endl; } // 方法一 void StartTask_v1() { m_taskThread = std::thread(std::bind(&TaskHelp::ThreadFunc, this)); } void StopTask() { if (m_taskThread.joinable()) { m_taskThread.join(); } } void SetStatus(const std::string& status) { m_status = status; } private: std::string m_status = "no task"; std::thread m_taskThread; }; // 使用示例 int main(int argc, char* argv[]) { TaskHelp help; help.StartTask_v1(); Sleep(1000); help.StopTask(); return 0; }

方法二:[this] + lambda

class TaskHelp { public: TaskHelp() = default; ~TaskHelp() { StopTask(); } public: // 线程函数 void ThreadFunc() { // todo 其他事项 // 访问类成员 std::cout << m_status.c_str() <<std::endl; } // 方法二 void StartTask_v2() { m_taskThread = std::thread([this]() { // todo 其他事项 // 访问类成员 std::cout << m_status.c_str() << std::endl; }); } void StopTask() { if (m_taskThread.joinable()) { m_taskThread.join(); } } void SetStatus(const std::string& status) { m_status = status; } private: std::string m_status = "no task"; std::thread m_taskThread; }; // 使用示例 int main(int argc, char* argv[]) { TaskHelp help; help.StartTask_v2(); Sleep(1000); help.StopTask(); getchar(); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:55:20

网络协议解析实战指南

数据包解析&#xff08;Packet Analysis&#xff09;是网络流量分析、安全审计和协议逆向工程中的关键技术&#xff0c;常用于识别通信内容、检测异常行为或进行故障排查。下面分别简要介绍你提到的常见协议&#xff08;Telnet、FTP、SSH、VNC、RDP&#xff09;以及工控协议&am…

作者头像 李华
网站建设 2026/6/10 0:35:52

SonarQube 平替?sourceFare:轻量级开源代码扫描新选择

研发过程中&#xff0c;为了持续检测和改进代码质量&#xff0c;会使用一些代码扫描工具。例如SonarQube&#xff0c;SonarQube是一款代码质量管理工具&#xff0c;能通过静态分析检测代码缺陷、漏洞、重复和异味&#xff0c;支持Java、Python、C等编程语言。但是部分语言收费&…

作者头像 李华
网站建设 2026/6/10 12:25:29

CI/CD 工具怎么选?GitLab CI vs Argo CD vs Arbess 全方位对比测评

面对众多的CI/CD工具&#xff0c;如何根据功能、价格和易用性做出选择&#xff1f;本文旨在通过多款工具的横向对比&#xff0c;为你提供清晰的梳理与参考。1、GitLab CI1.1 产品介绍GitLab CI 是 GitLab 内置的自动化工具链&#xff0c;提供从代码提交到生产部署的全流程支持&…

作者头像 李华
网站建设 2026/6/10 10:47:19

Python Falcon框架:专为高性能API设计的精简利器

目录 一、性能优先的极简主义 二、多维度优化策略 三、核心特性&#xff1a;RESTful开发的精准工具集 四、典型应用场景 五、技术选型建议 在Python生态中&#xff0c;Web框架的选择直接影响着API服务的性能与开发效率。Falcon作为一款专为RESTful API构建的轻量级框架&am…

作者头像 李华
网站建设 2026/6/10 12:25:15

Speech Seaco Paraformer显存占用高?内存优化参数设置指南

Speech Seaco Paraformer显存占用高&#xff1f;内存优化参数设置指南 1. 引言&#xff1a;为什么你的语音识别模型卡顿了&#xff1f; 你有没有遇到过这种情况&#xff1a;刚启动 Speech Seaco Paraformer&#xff0c;系统就变得卡顿&#xff0c;甚至音频还没开始识别&#…

作者头像 李华