线程同步与互斥

目录

1. 线程互斥

1.1 进程线程间的互斥相关背景概念

1.2 互斥量mutex

1.3 互斥量实现原理探究

1.4 互斥量的封装

2. 线程同步

2.1 条件变量

2.2 同步概念与竞态条件

2.3 条件变量函数

2.4 生产者消费者模型

2.4.1 为何要使用生产者消费者模型

2.4.2 生产者消费者模型的优点

2.5 基于BlockingQueue的生产者消费者模型

2.5.1 BlockingQueue

2.5.2 C++ queue模拟阻塞队列的生产消费模型

2.6 为什么pthread_cond_wait需要互斥量?

2.7 条件变量使用规范

2.8 条件变量的封装

2.9 POSIX信号量

2.9.1 基于环形队列的生产消费模型

3. 线程池

3.1 日志与策略模式

3.2 线程池设计

3.3 线程安全的单例模式

3.3.1 什么是单例模式

3.3.2 单例模式的特点

3.3.3 饿汉实现方式和懒汉实现方式

3.3.4 饿汉方式实现单例模式

3.3.5 懒汉方式实现单例模式

3.3.6 懒汉方式实现单例模式(线程安全版本)

3.4 单例式线程池

4. 线程安全和重入问题

概念

结论

5. 常见的锁概念

5.1 死锁

5.2 死锁四个必要条件

5.3 避免死锁

5.4 避免死锁算法

6. STL、智能指针和线程安全

6.1 STL中的容器是否是线程安全的?

6.2 智能指针是否是线程安全的?

7. 其他常见的各种锁 


1. 线程互斥

1.1 进程线程间的互斥相关背景概念

  • 共享资源:比如全局变量
  • 临界资源:多线程执行流被保护的共享的资源就叫做临界资源
  • 临界区:每个线程内部,访问临界资源的代码,就叫做临界区(临界区指的是代码),相反有非临界区
  • 互斥:任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对

你可能感兴趣的:(Linux系统及系统编程,开发语言,linux,服务器,c++)