c++ 线程间通信方式可分为两大类:
- 两个进程中的两个线程通信方式
- 信号量, socket网络连接, 共享内存 ,管道,共享文件
- 一个进程中的两个线程间通信方式
- 互斥锁
- 条件变量
- 信号量
- 读写锁shared_lock???什么鬼
互斥锁:顾名思义,在构造函数中加锁,在析构函数中解锁,是为上锁而优化的。
条件变量:可让等待共享数据的线程休眠,并在共享数据条件达成时将休眠的线程唤醒,是一种更高效的线程同步方式。一般与互斥锁结合使用。是为等待优化的。
信号量:既可用于上锁,又可用于开锁,因此功能强大的同时会产生更大的开销以及更高的复杂性。