在 github 的这个虚假共享测试中,一个数组被定义为int array[100]
. 它说
bad_index = 1
good_index = 99
。然后它创建两个线程并执行以下操作:
- 虚假共享:thread_1 更新
A[0]
,thread_2 更新A[bad_index]
- 无虚假共享:thread_1 更新
A[0]
,thread_2 更新A[good_index]
使用虚假共享,操作速度会慢 2 倍以上。我的问题是为什么索引1
不好而索引99
好?
在 github 的这个虚假共享测试中,一个数组被定义为int array[100]
. 它说
bad_index = 1
good_index = 99
。然后它创建两个线程并执行以下操作:
A[0]
,thread_2 更新A[bad_index]
A[0]
,thread_2 更新A[good_index]
使用虚假共享,操作速度会慢 2 倍以上。我的问题是为什么索引1
不好而索引99
好?