目录
- 一、前言
- 1. 多线程的含义
- 2. 进程与线程的区别
- 二、创建线程
- 1. thread
- 2. join() 和 detach()
- 3. this_thread
- 三、std::mutex
- 1. lock() 与 unlock()
- 2. lock_guard
- 3. unique_lock
- 四、condition_variable
- 五、std::atomic
- 如果这篇文章对你有所帮助,渴望获得你的一个点赞!
一、前言
1. 多线程的含义
多线程(multithreading),是指在软件或者硬件上实现多个线程并发执行的技术。具有多核CPU的支持的计算机能够真正在同一时间执行多个程序片段,进而提升程序的处理性能。在一个程序中,这些独立运行的程序片段被称为“线程”(Thread),利用其编程的概念就叫作“多线程处理”。
2. 进程与线程的区别
进程是指一个程序的运行实例,而线程是指进程中独立的执行流程。一个进程可以有多个线程,多个线程之间可以并发执行。
- 一个程序有且只有一个进程,但可以拥有至少一个的线程。
- 不同进程拥有不同的地址空间,互不相关,而不同线程共同拥有相同进程的地址空间。
二、创建线程
1. thread
C++支持多线程编程,主要使用的是线程库。
示例1: 创建线程使用std::thread类
#include #include //必须包含头文件 void threadFunctionA() { std::cout std::cout std::cout arg1 = arg2; std::cout std::cout std::cout std::thread t(foo); if (t.joinable()) { t.join(); // 等待线程t执行完毕 // t.detach(); // 分离线程t与主线程 } std::cout std::cout std::cout std::cout for (int i = 0; i
- 如果这篇文章对你有所帮助,渴望获得你的一个点赞!