https://blog.csdn.net/xxxcyzyy/article/details/85167894
get()方法不加锁防止读取脏数据,这个说法本身是有问题的。concurrentHashmap在多线程公用的时,同一个线程的put方法跟gut方法如果不是在一个原子代码块里,那get不到put进入的数据是正常的。所以,concurrenthashmap的get加不加锁,根本就不是说读取到的是不是脏数据的问题,说的是“get()跟put()在多线程并发调用时候,会不会在这两个方法内部出现并发异常情况”,这个“异常情况”,如1.8之前的Hashmap,在get跟put并发时,get可能进入无限循环的链,像这种才是。