黑马程序员技术交流社区

标题: 锁,同步代码块,同步方法 [打印本页]

作者: codersun    时间: 2015-8-15 21:23
标题: 锁,同步代码块,同步方法
锁,同步代码块,同步方法
1、同步代码块
     synchronized(锁对象){
          需要被锁的代码//线程只有拿到了锁对象,才能执行这里的代码!!!换言之,这里的代码如果执行了,说明该线程拿到了锁对象,其他线程不能拿到该锁对象
     }

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

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

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

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


作者: a2029460    时间: 2015-8-15 22:36
s d  ni hen geiil
作者: 巧克黑力    时间: 2015-8-16 00:09
飘过 赞一下 睡觉
作者: 风华正茂    时间: 2015-8-16 12:37
楼主总结得不错,赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2