黑马程序员技术交流社区
标题:
锁,同步代码块,同步方法
[打印本页]
作者:
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