相关疑难解决方法(0)

使用两个线程在C/C++中操作不同的数组索引时,是否需要同步?

假设我有一个如下定义的数组:

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.

c c++ arrays multithreading synchronization

11
推荐指数
2
解决办法
1077
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

multithreading ×1

synchronization ×1