打扰了,问一下,就是看到书上说1.8之前HashMap在多线程下使用会产生死循环的问题。
分析原因后,有一点很疑惑,希望能够得到解答,感激不尽 如下
假设两个线程同时对map进行put操作,也就是两个线程同时持有共享变量map的副本,
那么当两个线程同时操作共享变量map的时候,如果线程没有将副本中的数据刷入到内存
实际上线程1是无法感知到线程2对map执行了put操作。但是看到书上的解释,当线程2向
map中put了数据后,线程1却感知到了线程2 put的数据,对此感到很疑惑。
请问,两个线程在访问共享变量的时候,在没有使用锁以及volatile的情况下,只要线程没有
结束就不会将本线程的副本刷入到主存,当线程开始之后,只会在本地副本中获取数据,这个理解是否正确?
如果正确的话,是否就说明书上的解释是错的。。。