C++11 – 使用std::thread在类内部以成员函数作为多线程函数执行异步操作
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++11 – 使用std::thread在类内部以成员函数作为多线程函数执行异步操作
原文链接:https://www.stubbornhuang.com/1671/
发布于:2021年09月09日 9:37:13
修改于:2021年09月09日 9:37:13

1 使用std::thread在类内部创建多线程函数
在有些应用场景下,需要在某个类中以某个成员函数作为异步线程函数,或者需要多线程去执行某个耗时操作的成员函数。在这种应用场景下,知道如何在类内部以成员函数创建多线程函数就是一个比较基础的问题。
1.1 代码示例
demo代码如下:
#include <iostream>
#include <thread>
class ThreadTest
{
public:
ThreadTest()
{
}
virtual~ThreadTest()
{
}
public:
void StarThead()
{
std::thread t_thread(&ThreadTest::ThreadFunc, this);
std::thread t_threadOneParam(&ThreadTest::ThreadFuncWithOneParam, this,1);
std::thread t_threadTwoParam(&ThreadTest::ThreadFuncWithTwoParam, this, 1, 2);
if (t_thread.joinable())
{
t_thread.join();
}
if (t_threadOneParam.joinable())
{
t_threadOneParam.join();
}
if (t_threadTwoParam.joinable())
{
t_threadTwoParam.join();
}
}
void ThreadFunc()
{
std::cout << "ThreadFunc running" << std::endl;
}
void ThreadFuncWithOneParam(int a)
{
std::cout << "ThreadFuncWithOneParam running" << std::endl;
}
void ThreadFuncWithTwoParam(int a, int b)
{
std::cout << "ThreadFuncWithTwoParam" << std::endl;
}
};
int main()
{
ThreadTest thread_test;
thread_test.StarThead();
getchar();
return 0;
}
执行结果:

当前分类随机文章推荐
- C++ - 求解std::vector
中topk数值以及topk数值对应的索引 阅读1897次,点赞0次 - C++ - 使用宏区分不同系统平台、不同编译器、不同编译模式等编译期宏使用总结 阅读1086次,点赞0次
- C++11 - 委托机制的实现TinyDelegate 阅读1184次,点赞0次
- C++ – 字节数组byte[]或者unsigned char[]与bool的相互转换 阅读755次,点赞1次
- C++ 回调函数 阅读2763次,点赞0次
- C++ - 数组初始化 阅读149次,点赞0次
- C++ - 智能指针的正确使用方式 阅读329次,点赞0次
- C++读取Shp文件并将Shp转化为DXF 阅读2919次,点赞1次
- C++ - single header跨平台高效开源日志库Easylogging++的配置和使用 阅读256次,点赞0次
- C++11/std::condition_variable - 生产者消费者模型 阅读2601次,点赞0次
全站随机文章推荐
- Python - ModuleNotFoundError: No module named 'skimage' 阅读101次,点赞0次
- 资源分享 - GPU Pro 360 - Guide to 3D Engine Design 英文高清PDF下载 阅读2045次,点赞0次
- 资源分享 - Game Programming Gems 8 英文高清PDF下载 阅读2574次,点赞0次
- WordPress - 应对暴力破解登录和规避DDOS的几种方法 阅读2082次,点赞0次
- 资源分享 - Real-Time Cameras - A Guide for Game Designers and Developers 英文高清PDF下载 阅读1819次,点赞0次
- 资源分享 - Ray Tracing - A Tool for All 英文高清PDF下载 阅读1512次,点赞0次
- Python - 爬取直播吧首页重要赛事赛程信息 阅读96次,点赞0次
- Pytorch - 使用torch.matmul()替换torch.einsum('nctw,cd->ndtw',(a,b))算子模式 阅读1416次,点赞0次
- WordPress - wp_registration_url函数详解 阅读724次,点赞0次
- 资源分享 - GPU Computing Gems, Emerald Edition 英文高清PDF下载 阅读1127次,点赞0次
评论
164