摘要: 缓存一致性协议 为什么需要缓存一致性协议 多个线程并发访问一个共享变量时,这些线程的执行处理器上的高速缓存各自都会保留一份共享变量的副本,这带来一个问题,一个处理器对共享变量进行修改,其他处理器如何察觉到该更新并做出适当反应,以确保后续处理器读取到这个共享变量时可以读取到这个更新.这就是缓存一致性问 阅读全文
posted @ 2020-10-20 21:36 rudynan 阅读(499) 评论(2) 推荐(1)
摘要: 缓存一致性协议 1. 为什么需要缓存一致性协议 多个线程并发访问一个共享变量时,这些线程的执行处理器上的高速缓存各自都会保留一份共享变量的副本,这带来一个问题,一个处理器对共享变量进行修改,其他处理器如何察觉到该更新并做出适当反应,以确保后续处理器读取到这个共享变量时可以读取到这个更新.这就是缓存一 阅读全文
posted @ 2020-10-20 21:28 rudynan 阅读(405) 评论(0) 推荐(0)
摘要: jdk1.8 hash函数 (h = key.hashCode()) 与 (h >>> 16) 异或 jdk1.8确定map坐标的方式是tab[(n-1)&hash] n代表map的length,由于绝大多数情况下 map的length的值小于2^16 (25536),所以大部分情况下是hash的低 阅读全文
posted @ 2020-10-20 15:56 rudynan 阅读(2534) 评论(0) 推荐(0)
摘要: ^(异或运算) 二进制位运算 对应位的值相同为0 不同为1, 例子:0011 ^ 1100 = 1111 十进制运算中任何数与0进行^运算 都为它本身 不分前后位置 例子:12^0 = 12;0^12 = 12 任何数^相同的数 都为0 12^12 = 0; 可以应用于,数组取出唯一单独的值 [1, 阅读全文
posted @ 2020-10-20 11:42 rudynan 阅读(276) 评论(0) 推荐(0)