扫一扫 扫一扫
课程目录

课程目录

2023-07-27

6666666666

0. 课程目录

0. 课程目录

2023-07-28

1. C++11 Thead线程库的基本使用

1. C++11 Thead线程库的基本使用

2023-07-27

本文详细介绍C++11 Thead线程库的基本使用,包括如何创建线程、启动线程、等待线程完成以及如何分离线程等。## 创建线程要创建线程,我们需要一个可调用的函数或函数对象,作为线程的入口点。在···

2.线程函数中的数据未定义错误

2.线程函数中的数据未定义错误

2023-07-27

1. 传递临时变量的问题:```c++#include <iostream>#include <thread>void foo(int& x) { x += 1;}int main() { std::thread t(foo, 1); // 传递临时变量 t.join(); return 0;}···

3. 互斥量解决多线程数据共享问题

3. 互斥量解决多线程数据共享问题

2023-07-27

数据共享问题分析在多个线程中共享数据时,需要注意线程安全问题。如果多个线程同时访问同一个变量,并且其中至少有一个线程对该变量进行了写操作,那么就会出现数据竞争问题。数据竞争可能会导···

4. 互斥量死锁

4. 互斥量死锁

2023-07-27

假设有两个线程 T1 和 T2,它们需要对两个互斥量 mtx1 和 mtx2 进行访问,而且需要按照以下顺序获取互斥量的所有权:T1 先获取 mtx1 的所有权,再获取 mtx2 的所有权。T2 先获取 mtx2 的所有权,···

5.lock_guard 与 std::unique_lock

5.lock_guard 与 std::unique_lock

2023-07-28

lock_guardstd::lock_guard是 C++ 标准库中的一种互斥量封装类,用于保护共享数据,防止多个线程同时访问同一资源而导致的数据竞争问题。std::lock_guard的特点如下:当构造函数被调用时,该互斥···

6.std::call_once与其使用场景

6.std::call_once与其使用场景

2023-07-28

单例设计模式是一种常见的设计模式,用于确保某个类只能创建一个实例。由于单例实例是全局唯一的,因此在多线程环境中使用单例模式时,需要考虑线程安全的问题。下面是一个简单的单例模式的实现···

7.condition_variable 与其使用场景

7.condition_variable 与其使用场景

2023-07-28

阿司法hekki

8. C++11 跨平台线程池

8. C++11 跨平台线程池

2023-07-28

跨平台线程池实现它使用 C++11 标准库中的std::thread、std::mutex、std::condition_variable、std::function和std::queue等组件实现。#include<iostream>#include<thread>#include···

大图推荐