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

© 爽朗的菜籽 中级黑马   /  2014-9-20 16:34  /  1390 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Single_2
  2. {
  3.         private Single_2(){};
  4.         private static Single_2 s_2 = null;
  5.         public static synchronized Single_2 getInstance()
  6.         {
  7.                 if(s_2==null)
  8.                 {
  9.                         s_2 = new Single_2();
  10.                 }
  11.                 return s_2;
  12.         }
  13. }
复制代码

代码如上 我想问的是在静态函数中此时同步的锁 是 this 还是 this.getClass呢?

2 个回复

正序浏览
在静态函数中定义同步时,它的锁都是 类名:class
回复 使用道具 举报
当线程进入到同步代码块里面时,需要获取一把锁,OBJECT对象都行,其他线程会处于临时阻塞状态,知道该线程把共享数据操作完成才能执行其他数据。还有同步函数,同步函数操作的锁为this(调用这个方法的对象),静态同步方法的锁为 类名.class
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马