在这种情况下,当多个线程访问同一个变量时,是否需要互斥锁?

时间:2017-04-10 19:38:44

标签: c arrays multithreading

在C中,我正在利用pthread来跨越pthread在共享数组上执行计算。每个pthreads明显地给出偏移量,使得它们的计算区域没有重叠。

示例:

  • 线程0更新数组[0]到数组[9]
  • 线程1更新数组[10]到数组[19]
  • 线程2更新数组[20]到数组[29]

如果没有计算重叠并且它们不依赖于跨线程边界的相邻索引的更新,那么在这种情况下是否仍然需要互斥锁?

1 个答案:

答案 0 :(得分:4)

不,由于这些访问位于不同的不同内存位置,因此它们甚至不会发生冲突,因此它们不需要相互同步。