小工具知识网

当前位置: 首页 > 行业知识 > C++多线程图文详解

行业知识

C++多线程图文详解

2026-11-04 19:07:43 来源:互联网转载

���录

1 什么是C++多线程?

1.1 线程与进程

1.2 并发与并行

1.3 多线程

2  std::thread类 

2.1  std::thread类构造函数

2.1 std::thread类成员函数

3 std::mutex类

3.1 类介绍

3.2 std::mutex成员函数

4 std::future异步线程

4.1 std::future异步线程理解

4.2 shared_future异步线程理解

5 原子类型automic

6 C++多线程高级知识

6.1 线程池基础知识

6.2 线程池所解决的问题


1 什么是C++多线程?

1.1 线程与进程

       线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,进程包含一个或者多个线程。进程可以理解为完成一件事的完整解决方案,而线程可以理解为这个解决方案中的的一个步骤,可能这个解决方案就这只有一个步骤,也可能这个解决方案有多个步骤。

1.2 并发与并行

        并发:是指两个或多个事件在同一时间间隔发生,并发是针对单核 CPU 提出的,在同一CPU上的多个事件。

        并行:是指两个或者多个事件在同一时刻发生,并行则是针对多核 CPU 提出,在不同CPU上的多个事件

1.3 多线程

        多线程是实现并发(并行)的手段,并发(并行)即多个线程同时执行,一般而言,多线程就是把执行一件事情的完整步骤拆分为多个子步骤,然后使得这多个步骤同时执行。

2  std::thread类 

std::thread 在 头文件中声明,因此使用 std::thread 时需要包含 头文件。

2.1  std::thread类构造函数

默认构造函数thread() noexcept
初始化构造函数 template
拷贝构造函数 thread (const thread&) = delete
move构造函数thread (thread&& x) noexcept
  • 默认构造函数:创建一个空thread对象,该对象非joinable
  • 初始化构造函数:创建一个thread对象,该对象会调用Fn函数,Fn函数的参数由args指定,该对象是joinable的
  • 拷贝构造函数:被禁用,意味着thread对象不可拷贝构造
  • move构造函数:移动构造,执行成功之后x失效,即x的执行信息被移动到新产生的thread对象,该对象非joinable
    #include #include #include #include #include #include void f1(int n){    for (int i = 0; i 

上一篇:MATLAB知识点:for循环的七道经典例题

下一篇:浪潮塔式服务器怎么设置?