锁定老帖子 主题:Java同步锁一个技巧
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-03-30
Double-checked locking 的传统写法没有volatile修饰。
|
|
返回顶楼 | |
发表时间:2010-03-30
dennis_zane 写道 扯淡帖,不存储数据就变成锁粒度更小了?synchronized(this)跟你专门搞个object来用没有本质区别,都是对象锁。
我也觉得没本质区别 |
|
返回顶楼 | |
发表时间:2010-04-19
超级潜水艇 写道 用单独的锁对象是要比锁整个类性能要高出很多。
平常大家直接用在方法上的synchronized 实际上是锁定这个类。 那么不相关业务的锁定都同时锁定该类的话,那么有可能有这样的情景,即两个业务互不相干的,但是却要相互同步(因为方法上都用了synchronized ) 一般定义一个类的私有变量来实现同步,这样可以避免同时锁住类 |
|
返回顶楼 | |
发表时间:2010-05-02
单例不要用懒惰,也不要用双检锁,累赘,罗嗦 http://www.ibm.com/developerworks/cn/java/j-dcl.html |
|
返回顶楼 | |
发表时间:2010-05-04
不加synchroinzed不能保证可见性,有可能引用是最新的值,但是对象不是。因此需要Voliate来保证内存可见性。
|
|
返回顶楼 | |
发表时间:2010-09-07
zli.ray 写道 lz的 lock对象,我用普通的
private static Object lock = new Object(); 来代替可以吗? 应该要加 static的 因为也要保证这个同步锁(一个共享的对象)是同一个锁! |
|
返回顶楼 | |