![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm内存
学是为了不学
你学习吗?大家都在学习噢
展开
-
volatile不能保证原子性,atomic不仅保证可见性还有原子性CAS分析
给一个变量加了volatile关键字,就会告诉编译器和JVM的内存模型:这个变量是对所有线程共享的、可见的,每次jvm都会读取最新写入的值并使其最新值在所有CPU可见。volatile似乎是有时候可以代替简单的锁,似乎加了volatile关键字就省掉了锁。但又说volatile不能保证原子性(java程序员很熟悉这句话:volatile仅仅用来保证该变量对所有线程的可见性,但不保证原子性...原创 2019-07-10 16:17:14 · 2130 阅读 · 2 评论 -
ThreadLocal从源码分析总结到内存泄漏
引入话题:在并发条件下,如何正确获得共享数据?举例:假设有多个用户需要获取用户信息,一个线程对应一个用户。在mybatis中,session用于操作数据库,那么设置、获取操作分别是session.set()、session.get(),如何保证每个线程都能正确操作达到想要的结果? 回顾Java内存模型: 在虚拟机中,堆内存用于存储共享数据(实例对象),堆内存也...转载 2019-04-15 22:36:24 · 139 阅读 · 0 评论