我知道有数据竞赛,是否可以将其他竞赛条件细分为不同的类别?
最终所有竞争条件都是由于数据以错误的顺序访问,因此导致线程行为异常,但是数据竞争是一种非常特殊的情况,其中一次读取,更改和写入数据,对吗?
还有什么会导致竞争状况?
线程问题通常按如下分类:
数据竞赛是一个更底层的问题。当您在相同的内存位置上发生冲突的内存访问(因此至少其中之一是写操作)时,没有按关联发生的先后顺序进行排序。数据争用在诸如Java内存模型或C ++ 11的内存模型中定义。