线程同步(数据一致性)
以下情况可能会出现数据一致性问题:
- 变量修改时间多于一个存储器访问周期
- 多个线程试图同时修改同一变量
- 程序对变量的操作步骤组合并非原子操作
- 对多个线程共享的变量使用缓存
- 对易失性数据使用缓存
以下情况不会出现数据一致性问题:
- 执行原子操作
解决数据一致性问题的方法:
- 访问共享资源之前先对其加锁,阻止其他线程访问,访问完成后再解锁。
- 禁止对共享资源和易失性数据使用缓存
以下情况可能会出现数据一致性问题:
以下情况不会出现数据一致性问题:
解决数据一致性问题的方法: