C++ 11多线程快速入门

为什么要使用多线程

thread生命周期和线程等待和分离

全局函数做为线程入口分析参数传递内存

线程函数传递指针和引用

使用成员函数作为线程入口

lamdba临时函数作为线程入口

call_once函数多线程调用函数只进入一次

多线程通信和锁

多线程的状态及其切换流程分析

竞争状态及临界区介绍-互斥锁mutex代码

互斥锁的坑-线程抢不到资源的原因

超时锁timed_mutex和可重入锁

共享锁shared_mutex解决读写问题

锁资源管理和条件变量

手动实现RALL管理mutex资源_锁自动释放

C++ 11 RALL控制锁lock_guard

unique_lock可临时解锁控制超时的互斥体

C++ 14shard_lock共享锁包装器

C++ 17scoped_lock解决互锁造成的死锁

项目案例线程通信使用互斥锁和list实现

条件变量应用场景_生产者消费者信号处理

condition_variable代码示例读写线程

条件变量应用线程通信解决线程退出时

多线陈异步通信和并发计算

promise和future多线程异步传值

packaged_task异步调用函数打包

async创建异步线程替代thread

C++多核心实现分析并实现base 16编码

C++ 11实现多核base 16编码并与单核

C++ 17for_each多核运算示例编码base 16

C++ 11 14 17线程池实现

线程池实现步骤说明

完成线程池的初始化和启动

完成线程池任务调度

完成线程池退出并等待任务处理结束利用

线程池中在运行的任务数量获取使用

使用智能指针管理线程对象和任务对象

基于线程池实现音视频转码测试任务

完成线程池案例基于ffmpeg工具多线程

C++ 20线程特性

C++ 20屏障barrier实现线程协调