- 博客(3)
- 收藏
- 关注
原创 dubbo源码volatile使用问题
最近看了一些dubbo的源码,发现里边在使用volatile变量的时候有点问题,代码片段如下,其中initialized变量为volatile类型的boolean变量,这里的目的是想保证init()方法对于单个实例只调用一次,但是在多线程的情况下,完全有可能多个线程都走到if判断的逻辑而且同时还没有线程走到initialized=true,此时,多个线程就会全部都通过if判断,然后完成下边的初始化操
2015-12-04 12:02:53 269 1
原创 关于幻读
不可重复读在同一事务中,两次读取同一数据,得到内容不同,侧重点在于数据修改幻读同一事务中,用同样的操作读取两次,得到的记录数不相同,幻读的侧重点在于两次读取的纪录数量不一致不可重复读和幻读在概念上有些交叉,对于不可重复读来说,在同一个事务中,如果读取到的记录数量发生变化,也可以看作是一种不可重复读,同样,对于幻读来说,同一个事务中的读取结果数量一致,但是内容发生了变化,也可以看
2015-11-11 00:00:17 876
原创 浅谈java volatile
最近有点空闲时间,看了一下《Netty权威指南》,看到了关于volatile的一段论述:自己之前纠结过一段时间,这里说一下自己的理解,volatile变量作用有两方面:可见性和防止重排序。这个就不多说了,这里主要说一下volatile变量在什么情况下可以抛弃锁。首先应该确定一个前提,就是volatile变量不能牵扯到与其它变量的不变约束中,也就是说,volatile变量的变
2015-10-14 15:52:54 306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人