c++多线程入门
来源:互联网 发布:gigi和kendall 知乎 编辑:程序博客网 时间:2024/05/21 09:27
#include<iostream>
#include<thread>
#include<chrono>
using namespace std;
void hello()
{
cout << "hello world!\n";
}
void fun() {
cout << "fun()\n";
this_thread::sleep_for(chrono::seconds(5));//当前线程睡眠时间
}
void dosomething() {
cout << "dosomething()\n";
}
class background_t {//可以用可调用(callable)类型构造,将带有函数调用符类型
//的实例传入 std::thread 类中,替换默认的构造函数。
public:
void operator()()const{
fun();
dosomething();
}
};
int main()
{
background_t _ks;
/*try {
thread _m(_ks);
_m.join();
thread m_t{ background_t() };//实例化线程对象方法一
m_t.join();
thread m_k{ (background_t()) };//方法二
m_k.join();
//thread m_k (background_t());//由于c++会把它命名解析为返回类型为thread的函数并且函数指针不带参数所以这种实例化方式错误
}
catch (...) {
return 0;
}*/
thread _m(fun);
cout << _m.joinable() << endl;
_m.join();
cout<<_m.joinable()<<endl;
return 0;
}
#include<thread>
#include<chrono>
using namespace std;
void hello()
{
cout << "hello world!\n";
}
void fun() {
cout << "fun()\n";
this_thread::sleep_for(chrono::seconds(5));//当前线程睡眠时间
}
void dosomething() {
cout << "dosomething()\n";
}
class background_t {//可以用可调用(callable)类型构造,将带有函数调用符类型
//的实例传入 std::thread 类中,替换默认的构造函数。
public:
void operator()()const{
fun();
dosomething();
}
};
int main()
{
background_t _ks;
/*try {
thread _m(_ks);
_m.join();
thread m_t{ background_t() };//实例化线程对象方法一
m_t.join();
thread m_k{ (background_t()) };//方法二
m_k.join();
//thread m_k (background_t());//由于c++会把它命名解析为返回类型为thread的函数并且函数指针不带参数所以这种实例化方式错误
}
catch (...) {
return 0;
}*/
thread _m(fun);
cout << _m.joinable() << endl;
_m.join();
cout<<_m.joinable()<<endl;
return 0;
}
阅读全文
0 0
- C/C++ 多线程入门
- C/C++中的多线程入门
- C/C++中的多线程入门
- C/C++中的多线程入门
- C++多线程入门
- C#UI多线程编程入门
- C/C++中的多线程入门源码
- C#Thread类多线程系列(一)入门
- Linux-(C)多线程学习(入门)
- 多线程 入门
- 多线程入门
- 多线程入门
- 多线程入门
- 多线程入门
- 多线程入门
- 多线程入门
- 多线程入门
- 多线程入门
- JNI学习记录
- 4804: 欧拉心算
- SDOI2017R2&&PKUSC2017
- 搜狗输入法 + qq
- 【jzoj4982】【GDOI2017模拟2.23】【加密】【sam】
- c++多线程入门
- 6.2赫夫曼树
- 通过JDBC进行简单的增删改查(以MySQL为例)
- WinCE中如何向image中添加文件
- MFC连接数据库奔溃issue
- Java静态工厂方法 —— 有了它,你还需要工厂模式吗
- GridView“gv_res”激发了未处理的事件“RowDeleting”。
- Ubuntu 16.04 apt-get搭建LAMP环境
- JAVA中的this关键字