竟态条件 racing condition
竟态条件 racing condition
多个线程读时,线程是安全的。
当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。
我的理解,竞态条件就是一种情况。
代码示例
假设有 A、B 两个线程,调用 add 方法分别传入 1 和 2,理想条件下结果应该是 3。
现在出现了不安全的情况,有可能结果不对。
add 方法就是临界区
,count
就是同一资源。
1 | class Counter { |
其实这样一看,说白了,就是要严格控制线程的执行顺序,假设是按A、B的顺序执行来讲,B依赖于A先执行完成,B再执行结果才是正确的,中间不能出现问题,否则如果,中间交叉执行,就有可能发生了竞态条件。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 人话翻译机!
评论