特牛网址导航

hashmap在多线程下数据丢失问题_hashmap多线程数据丢失-CSDN博客

网友收藏
文章浏览阅读2.9k次。我们都知道hashmap是非线程安全的。什么是非线程安全呢?个人理解,就是在多线程环境下,一个线程对值做变更时,不会立即同步到其他线程,这时候其他线程获取该值的话就是取到旧值,如果在此基础上进行计算的话就会得到错误的结果。这点应该和java的内存模型有关,java内存分为工作内存和主内存。如图下所示(图为网上所找,侵删):java所有的变量都存储在主内存中,工作内存保存的是主内存的副本,线程所有对变量的操作都是在工作内存中完成的,无法直接操作主内存。而线程写变量到工作内存,再由工作内存同步到主内存,这_hashmap多线程数据丢失