论坛首页 入门技术论坛

Java同步锁一个技巧

浏览 14449 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-03-30  
Double-checked locking 的传统写法没有volatile修饰。
0 请登录后投票
   发表时间:2010-03-30  
dennis_zane 写道
扯淡帖,不存储数据就变成锁粒度更小了?synchronized(this)跟你专门搞个object来用没有本质区别,都是对象锁。

我也觉得没本质区别
0 请登录后投票
   发表时间:2010-04-19  
超级潜水艇 写道
用单独的锁对象是要比锁整个类性能要高出很多。
平常大家直接用在方法上的synchronized 实际上是锁定这个类。
那么不相关业务的锁定都同时锁定该类的话,那么有可能有这样的情景,即两个业务互不相干的,但是却要相互同步(因为方法上都用了synchronized )


一般定义一个类的私有变量来实现同步,这样可以避免同时锁住类
0 请登录后投票
   发表时间:2010-05-02  

单例不要用懒惰,也不要用双检锁,累赘,罗嗦
http://www.ibm.com/developerworks/cn/java/j-dcl.html
0 请登录后投票
   发表时间:2010-05-04  
不加synchroinzed不能保证可见性,有可能引用是最新的值,但是对象不是。因此需要Voliate来保证内存可见性。
0 请登录后投票
   发表时间:2010-09-07  
zli.ray 写道
lz的 lock对象,我用普通的
private static Object lock = new Object();

来代替可以吗?

应该要加 static的 因为也要保证这个同步锁(一个共享的对象)是同一个锁!
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics