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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© codersun 中级黑马   /  2015-8-15 21:23  /  3896 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

锁,同步代码块,同步方法
1、同步代码块
     synchronized(锁对象){
          需要被锁的代码//线程只有拿到了锁对象,才能执行这里的代码!!!换言之,这里的代码如果执行了,说明该线程拿到了锁对象,其他线程不能拿到该锁对象
     }

     注意
          多个线程必须使用同一个锁对象,要不然锁无效

2、同步方法
     public synchronized void show(){}               //普通方法的锁是this
     public static synchronized void show(){}    //静态方法的锁是当前类的字节码文件对象 类名.class

3、注意问题
     多个线程必须使用同一个锁对象,要不然锁无效
     同步代码块锁可以是任意对象
     同步方法的锁是this
     静态方法的锁是当前类的字节码文件对象 类名.class

4、什么时候用同步代码块,什么时候用同步方法
     尽可能用同步代码块
     如果一个方法内的所有代码都被同步代码块包住了,那就用同步方法就可以了

3 个回复

倒序浏览
s d  ni hen geiil
回复 使用道具 举报
飘过 赞一下 睡觉
回复 使用道具 举报
风华正茂 来自手机 中级黑马 2015-8-16 12:37:42
板凳
楼主总结得不错,赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马