首页 > 编程语言 >C++11:多线程

C++11:多线程

时间:2023-06-19 17:58:06浏览次数:40  
标签:11 std join thread C++ 线程 多线程

传统的C++(C++11之前)中并没有引入线程这个概念

C++11引入了头文件<thread>,提供了 管理线程 保护共享数据 线程间同步操作 原子操作等

 

 <thread>

join()  detach()  get_id()  yield()  sleep_for()  sleep_until() 

#include <thread>

int main()
{
std::thread t1;
std::cout << t1.get_id() << std::endl;
return 0;

}

 

//线程函数为函数指针
std::thread t1(ThreadFunc, 10);

//线程函数为lambda表达式
std::thread t2([] {std::cout << "Thread2" << std::endl; });

//线程函数为函数对象
TF tf;
thread t3(tf);

t1.join();
t2.join();
t3.join();
std::cout << "Main thread" << std::endl;
return 0;

 

<mutex>

 

 

<atomic>

 

 

<condition_variable>

 

 

 

<future>

 

标签:11,std,join,thread,C++,线程,多线程
From: https://www.cnblogs.com/k5bg/p/17491754.html

相关文章

  • 云原生周刊:Dapr v1.11 发布
    开源项目推荐KamajiKamaji可以大规模地部署和运行Kubernetes控制平面,而只需承担一小部分操作负担。Kamaji的特别之处在于,控制平面组件是在一个单一的pod中运行,而不是在专用机器中运行。这种解决方案使运行多个控制平面的成本更低,更容易部署和操作。RobustaKRRRobustaK......
  • C++ typeid关键字详解
    typeid关键字 注意:typeid是操作符,不是函数。这点与sizeof类似)运行时获知变量类型名称,可以使用typeid(变量).name()需要注意不是所有编译器都输出”int”、”float”等之类的名称,对于这类的编译器可以这样使用intia=3;if(typeid(ia)==typeid(int)){  cout<<"in......
  • C++11:Lambda表达式
    Lambda表达式为了一些简单的函数直接调用封装[var]:表示值传递方式捕捉变量var[=]:表示值传递捕捉所有父作用域中的变量(包括成员函数中的this)[&var]:表示引用传递捕捉变量var[&]:表示引用传递捕捉所有父作用域中的变量(包括成员函数中的this)[this]:表示值传递方式捕捉当前的this指......
  • The remote SSH server rejected X11 forwarding request.“远程SSH服务器拒绝X11转发
       启动kkFileView后弹出提醒无法正常访问服务器, 重启服务器时,需要安装出现如下提醒方法一、 X11forwarding依赖xorg-x11-xauth软件包,需要先安装xorg-x11-xauth软件包。1.使用Xshell执行下面代码[root@VM-4-11-centos~]#yuminstallxorg-x11-xauth  ......
  • 数据结构课程设计2023夏7-11 二路归并排序
    给定一个整数序列,请按非递减序输出采用二路归并排序(递归法)的各趟排序后的结果(每完成一次归并操作就输出归并后的结果)。输入格式:测试数据有多组,处理到文件尾。每组测试数据第一行输入一个整数n(1≤n≤100),第二行输入n个整数。输出格式:对于每组测试,输出若干行,每行是一趟排序后的......
  • UE5 C++ 定时器使用
    概念定时器在全局定时器管理器(FTimerManager类型)中管理。全局定时器管理器存在于游戏实例对象上以及每个场景中。有两个函数可以使用定时器管理器来设置定时器:SetTimer和SetTimerForNextTick,它们各自都有一些重载,每个函数都可以连接到任意类型的对象或函数委托使用访......
  • C++ 重载运算符
    为了叙述的方便,以下内容以赋值运算符为例赋值运算符本质是一个名为operator=的函数,某些运算符必须定义为成员函数赋值运算符定义示例代码classFoo{public:Foo&operator=(constFoo&);};......
  • Linux 7安装Oracle 11g打怪经历
    最近接到个需求,要将一套开发环境中Linux6平台的Oracle11g,迁移到两套Linux7平台,原以为很简单,但过程中,确实历经坎坷,就像过山车一般,解决这个问题,又碰到下一个。软件信息RedHatLinux7.5Oracle11.2.0.4坑坑坑1.软链接为了安装路径的标准和简便,可以使用软链接,语法如下,ln-s【目标......
  • C++多态的原理(虚函数指针和虚函数表) --imxiangzi 好好看
     C++多态的原理(虚函数指针和虚函数表)1.虚函数指针和虚函数表2.继承中的虚函数表2.1单继承中的虚函数表2.2多继承中的虚函数表3.多态的原理4.总结1.虚函数指针和虚函数表以下代码:问类实例化出的对象占几个字节?#include<iostream>usingnamespacestd;classA{ intm_a;publi......
  • c++11新特性之线程相关所有知识点
    c++11关于并发引入了好多好东西,这里按照如下顺序介绍:std::thread相关std::mutex相关std::lock相关std::atomic相关std::call_once相关volatile相关std::condition_variable相关std::future相关async相关std::thread相关c++11之前你可能使用pthread......