假设我有一个如下定义的数组:
volatile char v[2];
Run Code Online (Sandbox Code Playgroud)
我有两个线程(分别用A,B表示)操作数组v.如果我确保A,B在任何时候使用不同的索引,也就是说,如果A现在正在操纵v[i],那么B要么什么都不做,要么操纵v[1-i].我想知道这种情况需要同步吗?
我已经提到了这个问题,但我认为它在Java中是有限的.我之所以提出这个问题的原因是,我在一个大型项目中一直在努力解决一个奇怪而罕见的错误,直到现在,我能解释这个错误的唯一原因是需要同步以上操纵.(由于这个bug非常罕见,我很难证明我的推测是否属实)
编辑:可以读取和修改v.