Tom*_*ult 5 c arrays multithreading
我想知道两个线程是否可以修改同一个数组的元素.
如果我有unsigned char array[4],可以thread1设置array[0]和array[1]'A'和thread2设置array[2]和array[3]'B'同时没有问题?
unsigned char array[4]
array[0]
array[1]
array[2]
array[3]
The*_*ist 7
根据定义,当 1 个或多个线程将数据写入内存中的同一位置而其他线程从中读取(或也写入)时,就会发生竞争条件。每个修改不同数组元素的多个线程是否会写入内存中的相同位置?答案是不。每个数组元素都有一个单独为它保留的内存区域,该区域属于整个数组。因此,不同元素的修改不会写入任何相同的存储位置。
实际上,我很久以前在这里问过这个问题,并且我的博士工作的一部分就是以此为基础的。我并行拟合了数百条曲线(最小二乘拟合),同时更新了具有多个线程结果的单个数组。
归档时间:
8 年,4 月 前
查看次数:
1255 次
最近记录: