伪共享,cache line,无锁竞争

大佬的详细解释:https://www.cnblogs.com/cyfonly/p/5800758.html
伪共享,cache line,无锁竞争
猜测:第三级缓存,L3里面的数据是共CPU1和2共享的,L3是由N个cache line组成的
然后两个线程竞争锁的时候,是以缓存行为最小单位的?其实就是竞争这个缓存行的拥有权
那如果控制一个缓存行里面只有一个变量,比如用填充的方式,是不是就能减少锁的竞争
相当于一个变象的空间换时间(建立在缓存中存在两个线程都需要都数据都情况下,如果不存在要去主存中再找)
解决:填充,或者@Contended注解,这个注解在concurrentHashMap里有用
伪共享,cache line,无锁竞争
就用来算size的这个

补充:寄存器可以用来保存数据,可以当成离CPU最近最快的缓存层。但是寄存器里的值不能保证一定是正确的,内存里的值可能更新过了,所以可以加volatile来强制去读内存读值。
内存更新会不会通知寄存器?
伪共享,cache line,无锁竞争
和朋友聊了下还是没明白,回头明白了更新

https://blog.****.net/hanmindaxiongdi/article/details/81159314
伪共享,cache line,无锁竞争