C++并发与多线程编程(3)---线程间共享数据

主要内容:

  • 共享数据带来的问题

  • 使用互斥量保护数据

  • 数据保护的替代方案

  1. 共享数据带来的问题

当涉及到共享数据时,问题可能是因为共享数据修改所导致。如果共享数据是只读的,那么只读操作不会影响到数据,更不会涉及对数据的修改,所以所有线程都会获得同样的数据。但是当一个或多个线程要修改共享数据时,就会产生很多的麻烦。这种情况下,就必须小心谨慎,才能确保一切所有线程都工作正常。

1.1 条件竞争

1.2 避免恶性条件竞争

  1. 使用互斥量保护共享数据

2.1 C++中使用互斥量

2.2 精心组织代码来保护共享数据

2.3 发现接口内的条件竞争

2.4 死锁:问题描述与解决方案

2.5 避免死锁的进阶指导

2.6 灵活的锁--std::unique_lock

2.7 在不同域中传递互斥量所有权

2.8 锁的粒度

  1. 保护共享数据的替代设施

3.1 保护共享数据的初始化过程

3.2 保护很少更新的数据结构

3.3 嵌套锁

  1. 总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值