资源简介
c++11多线程编程库中的future库的使用实例,供多线程编程参考学习
代码片段和文件信息
#include // std::cout
#include // std::ref
#include // std::thread
#include // std::promise std::future
void print_int(std::future& fut) {
int x = fut.get(); // 获取共享状态的值.
std::cout << “value: “ << x << ‘\n‘; // 打印 value: 10.
}
int test_future_1()
{
std::promise prom; // 生成一个 std::promise 对象.
std::future fut = prom.get_future(); // 和 future 关联.
std::thread t(print_int std::ref(fut)); // 将 future 交给另外一个线程t.
prom.set_value(10); // 设置共享状态的值 此处和线程t保持同步.设置在join之前
t.join();
return 0;
}
std::promise prom2;
void print_global_promise() {
std::future fut = prom2.get_future();
int x = fut.get();
std::cout << “value: “ << x << ‘\n‘;
}
int test_future_2()
{
std::thread th1(print_global_promise);
prom2.set_value(10);
th1.join();
prom2 = std::promise(); // prom 被move赋值为一个新的 promise 对象.
std::thread th2(print_global_promise);
prom2.set_value(20);
th2.join();
return 0;
}
int countdown(int from int to) {
for (int i = from; i != to; --i) {
std::cout << i << ‘\n‘;
std::this_thread::sleep_for(std::chrono::seconds(1
- 上一篇:c++11原子库
- 下一篇:c++11互斥库mutex的使用
相关资源
- c++11原子库
- linux下c语言实现多线程web服务器
- MFC 多线程之间通过消息传递数据
- 基于多线程的Linux聊天室系统
- window c语言编写的多线程的Socket局域网
- Linux c语言多线程实现生产者/消费者问
- MFC创建用户界面线程方法2
- TCP一对多通信_基于MFC多线程
- 生产者消费者算法图形化演示系统
- 多进程写文件仿真
- 多线程流式套接字C/S模式通信程序
- c语言多线程计算PI
- MFC基于多线程的聊天程序用了winsock套
- Linux下纯C语言 多线程 人机 贪吃蛇
- 简单多线程socket聊天室程序(c语言)
- QT C++ 多线程支持多串口通信
- 给予c++的多线程
- 局域网活动主机扫描程序
- 随机迷宫生成迷宫自动寻路软件VS20
- mfc实现多线程工程代码和线程进程查
- MFC中的多线程同步
- Pthread 多线程C++动态库+静态库+头文件
- 基于Linux C语言的多线程模拟智能家具
- c++多线程的创建挂起执行与销毁
- MFC多线程编程示例47598
- c++11多线程库之线程库使用
- c++11多线程库之互斥库使用
- C C++ Linux多线程文件程序
- 多线程C++爬虫程序
- vc++实现哲学家吃面问题
评论
共有 条评论