黑马程序员技术交流社区

标题: synchronized加在方法上的问题 [打印本页]

作者: qisikudingcha    时间: 2014-1-16 23:28
标题: synchronized加在方法上的问题
本帖最后由 qisikudingcha 于 2014-1-17 11:04 编辑

synchronized加在代码块上的问题,锁住的是那个方法还是那个方法所属的对象
作者: mrwise1991    时间: 2014-1-16 23:44
默认锁住的是当前的对象,如果指定参数可以锁定指定的对象
作者: 放课后小朋友    时间: 2014-1-17 00:20
本帖最后由 放课后小朋友 于 2014-1-17 00:22 编辑

public void method3(Object obj){
                     synchronized(obj){...}
}所以是对象
作者: 汤柳清    时间: 2014-1-17 09:53
是对象,每次只能被一个对象访问或调用,写错了单词synchronized
作者: lyw@heima    时间: 2014-1-17 10:36
在多线程存取同一对象相同资源时引发竞速情况下,每个对象都会有个内部锁定。被标识为synchronized的区块将会被监控,任何线程要执行synchronized区块都必须先取得指定的对象锁定。因此锁定的是对象。
作者: qisikudingcha    时间: 2014-1-17 11:00
谢谢各位的回复,明白了。
作者: qisikudingcha    时间: 2014-1-17 11:04
汤柳清 发表于 2014-1-17 09:53
是对象,每次只能被一个对象访问或调用,写错了单词synchronized

额,是拼错了,谢谢·~
作者: 黄晓鑫    时间: 2014-1-17 11:16
你可以自己创建一个对象 加进去 或者可以用字节码文件作为对象进行传递




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