码迷,mamicode.com
首页 > 其他好文 > 详细

synchronized 的真正含义

时间:2015-05-11 14:40:36      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:

@synchronized 锁的永远是对象 ,值针对于对象,只能锁对象,常量等是不能加synchronized,一旦加编译也不会通过

@synchronized 锁对象中的非static 就是锁调用该方法的对象,是整个对象

@synchronized 锁对象中的static 方法就是锁整个类 ,和 synchronized(x.class) 和  锁静态代码块 三者都是一样的 就是锁 类加载器 给这个类 的 对象,记住这个类对象不是我们自己new 这个类的对象,而是 jvm 给这个类加载时用的对象,2这不一样。

@synchronized 锁一个对象中属性的话,这个属性必须也是对象,不能是常量,比如集合等,那synchronized(集合)就和这个对象没什么关系了,因为这个集合虽然是在这个对象里,但是 synchronized 针对的是 对象,是锁住的这个对象,即这个集合对象,所以和这个属性所在的大对象是没什么关系的,也就是说锁 大对象中的某个属性小对象时,那个大对象中的其他属性或者方法都是可以访问的,不受那个锁小对象的影响。

synchronized 的真正含义

标签:

原文地址:http://www.cnblogs.com/wzhanke/p/4494356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!