没啥好讲的  c++11  thread类的基本使用

#include "stdafx.h"
#include <iostream>
#include <thread>void Func(int n)
{for (int i = 0; i < 3; ++i)std::cout << "func " << i << std::endl;
}void RefFunc(int& n)
{for (int i = 0; i < 3; ++i)std::cout << "ref func " << i << std::endl;
}int _tmain(int argc, _TCHAR* argv[])
{int n = 0;std::thread t1; //无显示std::thread t2(Func, n + 1); //调用非引用参数的函数t2.join();std::thread t3(RefFunc, std::ref(n));//调用引用参数的函数 std::thread t4(std::move(t3)); t4.join();return 0;
}

代码展示了 thread类的几种用法。 传输函数合参数,带引用和不带引用两种。

其中t3使用了move将线程关联到t4

t3不在和线程关联。涉及到的move 见以后文章

显示如下:

func 0
func 1
func 2
ref func 0
ref func 1
ref func 2
请按任意键继续. . .

还有JOIN的使用方法.如果将join的代码提前,则两个线程的信息乱序输出

int _tmain(int argc, _TCHAR* argv[])
{
int n = 0;
std::thread t1; //无显示
std::thread t2(Func, n + 1); //调用非引用参数的函数
std::thread t3(RefFunc, std::ref(n));//调用引用参数的函数
std::thread t4(std::move(t3));
t2.join();
t4.join();
return 0;
}

  

显示如下:

func 0ref func 0

func 1
func 2
ref func 1
ref func 2
请按任意键继续. . .

转载于:https://www.cnblogs.com/itdef/p/4559090.html

c++11多线程学习笔记之一 thread基础使用相关推荐

  1. java 多线程语法_Java基础语法之多线程学习笔记整理

    众所周知,利用好多线程机制,可以大大提高系统整体的并发能力以及性能,而且线程间的切换和调度的成本小.因此,多线程是Java学习者必须掌握的语法重点.本文为大家整理了进程和线程.实现多线程方式.设置和获 ...

  2. java多线程学习笔记。

    java多线程学习笔记 线程的优缺点: 多线程的好处: 充分利用多处理核心,提高资源的利用率和吞吐量. 提高接口的响应效率,异步系统工作. 线程的风险: 安全危险(竞争条件):什么坏事都没有发生.在没 ...

  3. 《Java并发编程实践》学习笔记之一:基础知识

    <Java并发编程实践>学习笔记之一:基础知识 1.程序与进程 1.1 程序与进程的概念 (1)程序:一组有序的静态指令,是一种静态概念:  (2)进程:是一种活动,它是由一个动作序列组成 ...

  4. 菜鸟学习笔记:Java基础篇7(包装类、时间相关类、文件类、异常处理类)

    菜鸟学习笔记:Java其他常用类 基本数据类型包装类 时间处理和文件处理相关类 Date时间类 SimpleDateFormat Calendar日历类 文件类 异常机制 异常的概念 Java异常处理 ...

  5. Stream 流 【学习笔记】Java 基础

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 写这篇博客旨在制作笔记,方便个人在线阅览,巩固知识,无其他用途. 学习视频 [黑马 Java 基础教程] ...

  6. java线程集合点_Java多线程学习笔记(三) 甚欢篇

    使人有乍交之欢,不若使其无久处之厌 <小窗幽记>很多时候,我们需要的都不是再多一个线程,我们需要的线程是许多个,我们需要让他们配合.同时我们还有一个愿望就是复用线程,就是将线程当做一个工人 ...

  7. 多线程学习笔记20210121

    多线程学习笔记 线程简介 为什么要有线程 用一只手做事情显然是效率比较低的 ,两只手,再来一个人 合作去完成某一件事情显然就会效率高了. 就是在程序执行中 出现了 供需不平衡 了 为了使程序更快,更高 ...

  8. java 编程思想 多线程学习笔记

    java 编程思想 多线程学习笔记 一.如何创建多线程? 1.继承 java.lang.Thread 类 2.实现 java.lang.Runnable 接口 3.Callable接口 总之,在任何线 ...

  9. 史上最牛最强的linux学习笔记 10.shell基础

    史上最牛最强的linux学习笔记 10.shell基础 写在最前面: 本文是基于某站的视频学习所得,第一个链接如下: https://www.bilibili.com/video/BV1mW411i7 ...

最新文章

  1. php 操作权限,liunx下PHP操作权限文件
  2. 万字好文 | B端产品设计指南
  3. IBASE important table
  4. IOS-网络(大文件下载)
  5. Thinking in java之前
  6. vue devtools面板没有显示_vue 基础入门(四)
  7. FetchType与FetchMode的区别
  8. node.js初入手
  9. SpringMVC图片上传与显示
  10. 单片机r6/r7c语言怎么用,关于单片机C51中c语言函数(-nop-())?
  11. python多线程与多进程
  12. 使用FastDFS在CentOS上搭建简易分布式文件系统
  13. Python 成仙之路
  14. VAD(Voice Activity Detection)算法详解
  15. 雅马哈推出可以播放黑胶唱片和流行音乐的无线唱盘
  16. Python 调用 kafka 构建完整实例分析与应用
  17. linux修改重传次数,《关于TCP SYN包的超时与重传》——那些你应该知道的知识(四)...
  18. 夏日汽车保养 雨季汽车保养
  19. 32位超前进位加法器
  20. 51单片机-蓝牙遥控红外循迹小车-代码+硬件连接

热门文章

  1. 牛客编程巅峰赛S2第6场 - 钻石王者
  2. 安装MySql报错(This application requires .NET Framework x.x.x)
  3. ViewPager使用讲解
  4. Apache OpenNLP(二)
  5. 为什么要学习 Spring Boot?
  6. 时序数据库InfluxDB 2.0 alpha 发布:主推新的Flux查询语言,TICK栈将成为整体
  7. module.exports与exports,export与export defa
  8. 租用服务器怎么免去后顾之忧?
  9. 《Web前端工程师修炼之道(原书第4版)》——移动Web
  10. IPv6 HSRP协议