A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 卞潇洋 中级黑马   /  2012-11-22 12:01  /  1160 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态方法也可以同步。要保护的静态数据只有一份副本,因此要同步静态方法,而且每个类需要一个锁,用于整个类的锁,存在这样的锁------Java中载入的每个类都有一个对应的代表该类的java.lang.class实例。就是这个实例的锁来保护该类的静态方法。同步静态方法不需要做任何特殊操作:
  1. public static synchronized int getCount(){
  2. return count;
  3. }
复制代码
当然,也可以通过使用同步块代码替换:
  1. public static int getCount(){
  2.      synchronized(MyClass.class){
  3.        return count;
  4. }
  5. }
复制代码
MyClass.class为字面值,用于告诉便衣器找MyClass的类的Class实例

总是记住静态方法与非静态方法同步是两个互不影响的机制即可

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马