std::thread 五:打包任务(packaged_task)
#include <iostream>
#include <thread>
#include <mutex>
#include <list>
#include <future>
using namespace std; int myThread(int num)
{
cout << "myThread() start thread id =" << this_thread::get_id() << endl;
cout << "num is " << num << endl;
std::chrono::microseconds s(5000);
std::this_thread::sleep_for(s);
cout << "myThread() end thread id =" << this_thread::get_id() << endl;
return 5;
} int main()
{
cout << "main run thread id =" << std::this_thread::get_id() << endl;
/* packaged_task 包装函数,执行线程,可以拿到线程的返回值,不知道工作中应用场景在哪,但是学都学了,得记下来 */
// 创建一个打包任务,把任务包装起来
std::packaged_task<int(int)> mypt(myThread);
std::thread t(std::ref(mypt), 121212);
t.join();
std::future<int> res = mypt.get_future();
cout << res.get() << endl;
cout << "main end" << endl;
return 0;
}
std::thread 五:打包任务(packaged_task)的更多相关文章
- C++ 11 笔记 (五) : std::thread
这真是一个巨大的话题.我猜记录完善绝B需要一本书的容量. 所以..我只是略有了解,等以后用的深入了再慢慢补充吧. C++写多线程真是一个痛苦的事情,当初用过C语言的CreateThread,见过boo ...
- C++ std::thread
std::thread Defined in header class thread The class thread represents a single thread of execution. ...
- std::thread线程库详解(3)
目录 目录 前言 lock_guard scoped_lock (C++17) unique_lock shared_lock 总结 ref 前言 前两篇的博文分别介绍了标准库里面的线程和锁,这一次的 ...
- std::thread
std::shared_ptr<std::thread> m_spThread; m_spThread.reset(new std::thread(std::bind(&GameS ...
- 用std::thread替换实现boost::thread_group
thread_group是boost库中的线程池类,内部使用的是boost::thread. 随着C++ 11标准的制定和各大编译器的新版本的推出(其实主要是VS2012的推出啦……),本着能用标准库 ...
- C++11 并发指南------std::thread 详解
参考: https://github.com/forhappy/Cplusplus-Concurrency-In-Practice/blob/master/zh/chapter3-Thread/Int ...
- Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)
昨天练车时有一MM与我交替着练,聊了几句话就多了起来,我对她说:"看到前面那俩教练没?老色鬼两枚!整天调戏女学员."她说:"还好啦,这毕竟是他们的乐趣所在,你不认为教练每 ...
- C++11多线程std::thread的简单使用
在cocos2dx 2.0时代,我们使用的是pthread库,是一套用户级线程库,被广泛地使用在跨平台应用上.但在cocos2dx 3.0中并未发现有pthread的支持文件,原来c++11中已经拥有 ...
- Effective Modern C++ Item 37:确保std::thread在销毁时是unjoinable的
下面这段代码,如果调用func,按照C++的标准,程序会被终止(std::terminate) void func() { std::thread t([] { std::chrono::micros ...
- std::thread使用
本文将从以下三个部分介绍C++11标准中的thread类,本文主要内容为: 启动新线程 等待线程与分离线程 线程唯一标识符 1.启动线程 线程再std::threada对象创建时启动.最简单的情况下, ...
随机推荐
- 记一次酣畅淋漓的 K8s Ingress 排错过程(302,404,503,...)
故事开始 第 1 关:[流量重定向到 /] 第 2 关:[应用返回 302,重定向到 /,引入 503 错误] 第 3 关:[静态资源访问遇到 503 问题] 第 4 关:[静态资源访问遇到 403 ...
- 十一: 数据库缓冲池(buffer pool)
数据库缓冲池(buffer pool) InnoDB 存储引擎是以页为单位来管理存储空间的,我们进行的增删改查操作其实本质上都是在访问页 面(包括读页面.写页面.创建新页面等操作).而磁盘 I/O 需 ...
- CSAPP:lab7 shell
实验网站 课程网站:CSAPP 源码下载 源码下载 实验文档下载 我的实验环境:Ubuntu 20.04 lab7文档解读 查看 tsh.c (tiny shell) 文件,您会看到它包含一个简单 ...
- 一文搞定POI,再也不怕excel导入导出了
写在前面 在Java日常开发过程中,实现Excel文件的导入导出功能是一项常见的需求. 通过使用相关的Java库,如Apache POI.EasyPoi或EasyExcel,可以轻松地实现Excel文 ...
- Zabbix MQQT协议监控 loT设备
一. 项目背景 监控异地局域网主机(主机内有物联5G卡 可以单方面向特定的云服务器传输信息)这里采用 zabbix 5xx系列 agent2 -6.2 版本 主动模式,即客户端向服务端注册. 二. ...
- Go | Gin 解决跨域问题跨域配置
Go | Gin 解决跨域问题跨域配置 目录 一.关于跨域解决方案 二.使用步骤 1. 编写一个中间件 2. 使用 3. 注意事项 一.关于跨域解决方案 关于跨域的解决方法,大部分可以分为 2 种 n ...
- SQL注入详细讲解概括—宽字节注入
SQL注入详细讲解概括-宽字节注入 1.宽字节注入原理 2.宽字节注入方法 一.宽字节注入原理 What is 宽字节? 字符大小为一个字节时为窄字节 字符大小为两个及以上的字节为宽字节 英文26个字 ...
- MySQL 如何以当前日期时间作为字段初始默认值?
1.以当前时间作为默认值 使用 DEFAULT CURRENT_TIMESTAMP 声明字段,插入记录时不用指定 dt,自动置入当前时间 CREATE TABLE t1 ( dt DATETIME D ...
- webpack 项目接入Vite的通用方案介绍(下)
愿景 希望通过此系列文章,能给读者提供一个存/增量项目接入Vite的点子,起抛砖引玉的作用,减少这方面能力的建设成本 在阐述过程中同时也会逐渐完善webpack-vite-serve这个工具 读者可直 ...
- 【Atcoder D - Circumferences】并查集
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...