新线程的回调函数也可以是有一个Lambda表达式的形式
来源:互联网 发布:网上买钻戒靠谱吗 知乎 编辑:程序博客网 时间:2024/05/07 19:11
#include <thread>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<thread> threads;//使用vector来存放每个线程,线程的回调函数通过Lambda表达式产生,注意后面join的使用方式。
for (int i = 0; i < 5;++i)//C++11支持Lambda表达式,因此一个新线程的回调函数也可以是有一个Lambda表达式的形式,但是注意如果使用Lambda表达式最好不要使用引用的方式,应该使用值传递的方式来访问数据,在多线程中使用引用容易造成混乱。
{
threads.push_back(thread([]()//创建了多个子线程,并使用了get_id()方法来获取当前线程的id。
{
cout << "Hello from lamda thread" << this_thread::get_id() << endl;
}));
}
for (auto& thread:threads)
{
thread.join();
}
cout << "Main Thread" << "\t" << this_thread::get_id() << endl;
system("pause");
return 0;
}
#include <thread>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<thread> threads;//使用vector来存放每个线程,线程的回调函数通过Lambda表达式产生,注意后面join的使用方式。
for (int i = 0; i < 5;++i)//C++11支持Lambda表达式,因此一个新线程的回调函数也可以是有一个Lambda表达式的形式,但是注意如果使用Lambda表达式最好不要使用引用的方式,应该使用值传递的方式来访问数据,在多线程中使用引用容易造成混乱。
{
threads.push_back(thread([]()//创建了多个子线程,并使用了get_id()方法来获取当前线程的id。
{
cout << "Hello from lamda thread" << this_thread::get_id() << endl;
}));
threads[i].join();
}
cout << "Main Thread" << "\t" << this_thread::get_id() << endl;
system("pause");
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<thread> threads;//使用vector来存放每个线程,线程的回调函数通过Lambda表达式产生,注意后面join的使用方式。
for (int i = 0; i < 5;++i)//C++11支持Lambda表达式,因此一个新线程的回调函数也可以是有一个Lambda表达式的形式,但是注意如果使用Lambda表达式最好不要使用引用的方式,应该使用值传递的方式来访问数据,在多线程中使用引用容易造成混乱。
{
threads.push_back(thread([]()//创建了多个子线程,并使用了get_id()方法来获取当前线程的id。
{
cout << "Hello from lamda thread" << this_thread::get_id() << endl;
}));
}
for (auto& thread:threads)
{
thread.join();
}
cout << "Main Thread" << "\t" << this_thread::get_id() << endl;
system("pause");
return 0;
}
#include <thread>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<thread> threads;//使用vector来存放每个线程,线程的回调函数通过Lambda表达式产生,注意后面join的使用方式。
for (int i = 0; i < 5;++i)//C++11支持Lambda表达式,因此一个新线程的回调函数也可以是有一个Lambda表达式的形式,但是注意如果使用Lambda表达式最好不要使用引用的方式,应该使用值传递的方式来访问数据,在多线程中使用引用容易造成混乱。
{
threads.push_back(thread([]()//创建了多个子线程,并使用了get_id()方法来获取当前线程的id。
{
cout << "Hello from lamda thread" << this_thread::get_id() << endl;
}));
threads[i].join();
}
cout << "Main Thread" << "\t" << this_thread::get_id() << endl;
system("pause");
return 0;
}
0 0
- 新线程的回调函数也可以是有一个Lambda表达式的形式
- lambda表达式的形式
- Cocos2d-x回调函数 Lambda表达式
- .NET:异步调用长时间工作的方法(采用lambda表达式封装回调函数)
- lambda回调函数
- 中断线程化时,中断的回调函数可以为null
- cocos2d3.10 简单引用lambda表达式用作回调函数
- 使用回调函数实现一个通用的冒泡排序,可以排序不同的数据类型。
- 有是一个新的一天
- 一个数的二进制形式中有几个1
- 求出一个数的二进制形式中有几个1
- 计算一个数的二进制形式有多少个1
- 一个简单的回调函数模型
- 一个c回调函数的例子
- 一个c回调函数的例子
- 一个c回调函数的例子
- 一个c回调函数的例子
- 一个c回调函数的例子
- Three.js的轻量级封装框架Sim.js解析(1)
- linux下gdb调试器使用学习-03
- hdoj--2187--悼念512汶川大地震遇难同胞——老人是真饿了(贪心)
- dz会员找回密码提示参数错误的解决方案
- USACO第一题RIDE,我的飞船在哪里
- 新线程的回调函数也可以是有一个Lambda表达式的形式
- hdoj 又一版 A+B 1877 (机制转换)
- Problem G: C语言习题 n个数逆序
- iOS9中如何在日历App中创建一个任意时间之前开始的提醒(一)
- 关于N-Gram模型
- Linux Shell 1>/dev/null 2>&1 含义
- JavaScript控制页面显示和隐藏带案例
- HQL执行的三种方式
- 变量、作用域和内存问题