#include<iostream>
#include<thread>
void hello() {std::cout << "Hello Concurrent Word\n";
}
int main() {std::thread t(hello);t.join();
}

这完全就是大材小用了,但这也正是我们开始学习C++并发编程的第一步,如果想要系统的学习C++的多线程并发。

强烈推荐《C++并发编程第二版》,其所使用标准C++111,C++14,C++17,强烈建议对于新标准新特性不了解的诸位,作者更是ios即C++标准委员会的成员之一,书中内容也有多位成员参与编写与帮助。

同时体会多线程并发的魅力。

最简单的发起线程

#include<iostream>
#include<thread>
void do_some_work(){}
class background_task {
public:void operator()()const {do_some_work();}
};
int main() {background_task f;std::thread my_thread(f);my_thread.join();
}
//函数对象,lambda表达式,函数指针等都可以,这里是使用函数对象

以及利用rall过程等待线程完结,很多很多等待你的学习

#include<iostream>
#include<thread>
class thread_guard {std::thread& t;
public:explicit thread_guard(std::thread& t_) :t(t_) {}~thread_guard() {/* joinabe成员函数的作用在c++官方文档中是返回线程是否是可结合的。. 可结合的意思就是,一个线程是否能够被执行Join或者是detch操作,因为相同的线程不能被join两次,也不能join完再进行detach,同理也不可以被detach两次,所以joinable函数就是判断是否能进行可结合。*/if (t.joinable()) {t.join();}}thread_guard(thread_guard const&) = delete;thread_guard& operator=(thread_guard const&) = delete;
};
void do_something() {}
struct func {int& i;func(int& i_) :i(i_) {}void operator()() {for (unsigned j = 0; j < 1000000; ++j) {do_something();}}
};
void f() {int some_local_state = 0;func my_func(some_local_state);std::thread t(my_func);thread_guard g(t);do_something();
}
int main() {f();
}
//20面下半部分到21页

请诸位的编译器要支持C++17

C++多线程helloWord相关推荐

  1. JavaNIO——多线程以及IO模型(笔记)

    文章目录 一.多线程优化 1.1 Boss与Worker 1.2 初步实现1Boss,1Worker 1.3 线程数目配置 二.UDP 三.IO模型 3.1 stream(BIO) vs channe ...

  2. Java:多线程(同步死锁、锁原子变量、线程通信、线程池)

    5,同步和死锁 5.1,线程同步 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象: 修饰一个方法,被修饰的方法称为同步方法,其作用 ...

  3. Java 多线程概述

    多线程技术概述 1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间. 线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换.并发执行,一个进程最少有一个线程, ...

  4. Java 多线程的基本方式

    Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

  5. RPC 笔记(08)— socket 通信(多进程多线程服务器)

    在上一节中如果并行的客户端连接数超过了默认开启进程的数量,那么后来的客户端请求将会阻塞,为了不阻塞新的客户端,我们可以将进程的单线程改成多线程即可. ​ 服务端代码: import json impo ...

  6. Python 多线程总结(2)— 线程锁、线程池、线程数量、互斥锁、死锁、线程同步

    主要介绍使用 threading 模块创建线程的 3 种方式,分别为: 创建 Thread 实例函数 创建 Thread 实例可调用的类对象 使用 Thread 派生子类的方式 多线程是提高效率的一种 ...

  7. Python 多线程总结(1)- thread 模块

    thread 模块 1. 单线程 首先看下单线程程序运行的例子,如下所示, import timedef loop0():print 'start loop0 begin', time.ctime() ...

  8. Python多线程调试

    有时候程序是多线程的,调试的时候可能跑到别的线程了. 这个时候把thread.start变成threa.run就好了,就会执行完当前线程再执行下一个. for thread in threads:th ...

  9. python究竟要不要使用多线程

    阅读目录 1. 先来看两个例子 2. python虚拟机机制如何控制代码执行? 3. python多线程究竟有没有用? 4. python多进程执行原理 在总结concurrent.futures库之 ...

最新文章

  1. 深究AngularJS——ng-drag、ng-drop
  2. 我希望你能精简一些东西
  3. xp python35.dll_python35.dll
  4. python颜色填充代码_在python tu中用颜色填充形状
  5. P5748-集合划分计数【EGF,多项式exp】
  6. 【渝粤题库】广东开放大学 秘书理论与实务 形成性考核
  7. 如何开发一个可运维系统的一点体会
  8. [html] 你认为table的作用和优缺点是什么呢?
  9. DateFormat(炸窝)
  10. 自定义日期工具类 java 1614698552
  11. 关于 iOS 中 new Date()的坑
  12. 宝鸡市二检理科数学跟踪训练题
  13. macOS 10.14安装win10教程 bootcamp篇
  14. 佳能mf4400打印机无线服务器,佳能mf4400打印机驱动
  15. 计算机wmi配置错误,系统没有WMI服务怎么办、WMI错误修复方法
  16. python写酒店管理系统_基于WEB的小型酒店管理系统,源码下载
  17. 今天讲一下完整的前端模块化,很实用
  18. 干货|建模3D Max中常见问题
  19. 嵌入式程序员应知道的问题
  20. 简单的Android 红外线遥控

热门文章

  1. 撸一个VS Code插件——红白机模拟器 支持手柄 支持保存
  2. 快速进行OneHot编码——get_dummies()函数
  3. 计算机系统崩溃代码,这12行代码分分钟让你电脑崩溃手机重启
  4. 深田之星备件仓库管理系统2011
  5. Java获取当前时间戳的方法
  6. call()的第二个参数
  7. 各种排序最好最坏的比较次数
  8. 2021-01-19:mysql中,一张表里有3亿数据,未分表,其中一个字段是企业类型,企业类型是一般企业和个体户,个体户的数据量差不多占50%,根据条件把个体户的行都删掉。请问如何操作?
  9. BoostAsyncSocket 异步反弹通信案例
  10. midpoint displacement