c++11 thread 封装线程类
2016-01-21 11:01
609 查看
c++ thread也挺好用的,也可以像qt thread那样,start启动,run函数为线程的实际运行代码。thread和this_thread方法不多,常用的就几个。
1.std::this_thread::get_id 获取线程id
2.yield,和sleep。yield,交出cpu占有权,一般可以放到多线程的循环里,减少cpu空转
3.一般代码构建完thread,线程跑起来detach一下,qt是默认会detach的。join实际代码一般不用,就主线程等待其他多个线程结束会用到下。
#include <thread>
class TestThread
{
public:
void start(){
thread t(std::bind(&TestThread::run,this));
t.detach();
}
void run(){
while (true){
cout << "test thread id:" << std::this_thread::get_id()<<endl;
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
}
}
};
void run(){
while (true){
cout << "function thread id:" << std::this_thread::get_id() << endl;
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
}
}
int main(void)
{
cout << "main thread id:" << std::this_thread::get_id() << endl;
1.std::this_thread::get_id 获取线程id
2.yield,和sleep。yield,交出cpu占有权,一般可以放到多线程的循环里,减少cpu空转
3.一般代码构建完thread,线程跑起来detach一下,qt是默认会detach的。join实际代码一般不用,就主线程等待其他多个线程结束会用到下。
#include <thread>
class TestThread
{
public:
void start(){
thread t(std::bind(&TestThread::run,this));
t.detach();
}
void run(){
while (true){
cout << "test thread id:" << std::this_thread::get_id()<<endl;
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
}
}
};
void run(){
while (true){
cout << "function thread id:" << std::this_thread::get_id() << endl;
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
}
}
int main(void)
{
cout << "main thread id:" << std::this_thread::get_id() << endl;
TestThread testThread; testThread.start();
thread funcThread(&run); funcThread.detach(); getchar(); return 0; }
相关文章推荐
- C++实现基于概率论的分类方法--朴素贝叶斯分类
- C++入门(21):二进制文件、C风格字符串
- C语言函数名与函数指针详解
- C++虚函数和虚继承浅析
- C语言中的EOF
- C++中 auto自己主动变量,命名空间,using作用以及作用域
- Java和c++泛型理解
- C++Primer第五版 12.1.5节练习
- C++学习 【3.2】 程序设计初步---输入、输出&关系运算、逻辑运算
- C++学习之继承篇(is a:用子类对象给基类对象赋值或初始化)
- C++学习 【3.1】 程序设计初步---算法、结构、赋值语句
- C语言学习之数组指针和指针数组
- [置顶] C++实现读取文本文件数据到vector中
- C++异常处理及函数堆栈信息打印
- C++应用程序路径获取及操作
- Python与C++结构体交互
- C++之路进阶——树套树(陌上花开)
- C++ Unicode SBCS 函数对照表,以备日后查阅
- C++智能指针笔记
- C++11新特性