#include <thread>
1 detach
脱离当前主线程,自由执行,乱序;
2 join()
等待模式,执行完再执行下一个
3 std::this_thread::get_id()
获取当前线程编号
4 std::thread::hardware_concurrency()
检测CPU有多少个核心
1 detach
脱离当前主线程,自由执行,乱序;
2 join()
等待模式,执行完再执行下一个
#include <iostream>
#include <thread> void run(int num)
{
std::cout << "hello world" << num << std::endl;
} void main()
{
std::thread *p[]; for (int i = ; i < ; i++)
{
p[i] = new std::thread(run, i);//循环创建线程
//p[i]->join();//等待模式,执行完再执行下一个
p[i]->detach();//脱离当前主线程,自由执行,乱序;
} system("pause");
}
1 join()
等待模式,执行完再执行下一个
2 std::this_thread::get_id()
获取当前线程编号
3 std::thread::hardware_concurrency()
检测CPU有多少个核心
#include <iostream>
#include <thread>
#include <windows.h> void msg()
{
MessageBoxA(, "对话框内容", "对话框标题", );//弹出对话框
} void main()
{
auto n = std::thread::hardware_concurrency();//检测CPU有多少个核心
std::cout << n << std::endl; std::cout << "thread=" << std::this_thread::get_id() << std::endl;//获取当前线程编号 std::thread thread1(msg);//创建多线程
std::thread thread2(msg); thread1.join();//开始执行,同时弹出2个对话框
thread2.join(); system("pause");
}
std::vector<std::thread *>threads;//创建一个数组,数组的元素数据类型是std::thread *
threads.push_back(new std::thread(msg));//创建线程,并添加到数组
#include <iostream>
#include <thread>
#include <vector>
#include <windows.h> void msg()
{
MessageBoxA(, "对话框内容", "对话框标题", );//弹出对话框
} void main()
{
std::vector<std::thread *>threads;//创建一个数组,数组的元素数据类型是std::thread * for (int i = ; i < ; i++)
{
threads.push_back(new std::thread(msg));//创建线程,并添加到数组
} for (auto th : threads)//遍历数组
{
th->join();//执行数组中的线程
} system("pause");
}
threads.push_back(new std::thread(msgA, i));//创建线程,并添加到数组,传入参数i,进行通信
#include <iostream>
#include <thread>
#include <vector>
#include <windows.h> void msgA(int num)
{
std::cout << std::this_thread::get_id() << " num=" << num << std::endl;//获取当前线程编号
MessageBoxA(, "对话框内容", "对话框标题", );//弹出对话框
} void main()
{
std::vector<std::thread *>threads;//创建一个数组,数组的元素数据类型是std::thread * for (int i = ; i < ; i++)
{
threads.push_back(new std::thread(msgA, i));//创建线程,并添加到数组,传入参数i,进行通信
} for (auto th : threads)//遍历数组
{
th->join();//执行数组中的线程
} system("pause");
}
#include <thread>的更多相关文章
- 浅谈JSP中include指令与include动作标识的区别
JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...
- Entity Framework 6 Recipes 2nd Edition(13-9)译 -> 避免Include
问题 你想不用Include()方法,立即加载一下相关的集合,并想通过EF的CodeFirst方式实现. 解决方案 假设你有一个如Figure 13-14所示的模型: Figure 13-14. A ...
- error RC1015: cannot open include file 'afxres.h' 解决办法
在为WindowsPhone8程序添加本地化的过程中遇到这个问题: 问题原因就是afxres.h文件缺失,下载它,放到VS安装目录下的VS\include目录下就可以了(选择目录的时候注意对应对版本) ...
- Mybatis常用总结:参数,返回,执行sql,include等
1.参数注入1.1用#{0},#{1}的形式,0代表第一个参数,1代表第二个参数 public List<RecordVo> queryList(String workerId, Inte ...
- jsp中的@include与jsp:include区别详解
1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...
- JSP中编译指令include与动作指令include的区别
include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改, 否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如 ...
- C/C++ 中的include
当需要使用已有的方法或库时, 可以将它们的头文件#include进来. #include会在preprocess过程中被替换成它包含的代码. 头文件中包含了需要使用的函数/变量的声明. 当然声明与定义 ...
- 织梦多语言站点,{dede:include filename=''/}引入问题
织梦模板include插入非模板目录文件出现"无法在这个位置找到"错误的解决办法 以下是dede V55_UTF8 查dede include标签手册 (3) include 引入 ...
- PHP 站点相对包含,路径的问题解决方法(include,require)
以前看了,很多框架,基本上很少使用相对路径包含.而一般很多做php web站点,喜欢用相对路径. 认为这样,无论目录放到那里. 只要跟另外目录关系一致.那么就不会出现问题.如果一个站点,一般都认为,如 ...
- 如何让include标签包裹的布局置于屏幕最下方?
如何让一个Layout 始终在屏幕的下方 我想让<include layout="@layout/bottom" />一直在屏幕下,怎么做? 1.相对布局中用属性 a ...
随机推荐
- (译)iPhone: 用公开API创建带小数点的数字键盘 (OS 3.0, OS 4.0)
(译)iPhone: 用公开API创建带小数点的数字键盘 (OS 3.0, OS 4.0) 更新:ios4.1现在已经将这个做到SDK了.你可以设置键盘类型为UIKeyboardTypeDecimal ...
- aix puppet agent
demo控制脚本tel,150 5519 8367 Running Puppet on AIX Puppet on AIX is… not officially supported, yet stil ...
- uva 10163 - Storage Keepers(01背包)
题目链接:10163 - Storage Keepers 题目大意:给出m为仓库的数量, 给出n为有守夜人的数量, 然后给出n个数值,为对应守夜人应付的酬劳,每个守夜人的能力与他需要的酬劳是相等的,并 ...
- 日本語N1文法まとめ
1.v连用形+ものの:虽然~但是(201212-32) -(の)かというと/かといえば(201412-38)a动词ます辞書形・た形/イ形+~ な形語幹/名+~a,"至于是否・・・・・・&qu ...
- iOS学习,需要懂的一些基础
1. KVC 与 KVO 全称是Key-value coding,翻译成键值编码.顾名思义,在某种程度上跟map的关系匪浅.它提供了一种使用字符串而不是访问器方法去访问一个对象实例变量的机制. 全称 ...
- OCP prepare 20140703
1. trim trim('aaa' from 'aaabbbccc') 这个是错误的.ora-30001: trim set should have only one character 2. in ...
- JS 精粹(一)
先说说JS是容易被误解的语言的观点.从名字上来看,"Java"这似乎暗示着这门语言与Java的关系:好像这门语言是Java的子集,或比Java弱.但实际与Java并无关系,如果说非 ...
- php获取文章内容中的全部图片数组
<?php $pattern="/<img.*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/&q ...
- 第八章: IO库
一.IO类 1.iostream定义了读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写内存string对象的类型 2.不能拷贝IO对象,因此不能将形参或返回类型设置为 ...
- U盘安装ubuntu14.10时出现的gfxboot.c32:not a COM32R image问题
最近ubuntu14.10出来了,因为从ubuntu14.04升级不是很成功,于是就重新下载了14.10的系统镜像(苦逼的无线啊).于是我按照以往的方式用软碟通将镜像解压到U盘里,重启系统,却出现了g ...