黑马程序员技术交流社区
标题:
同步函数锁
[打印本页]
作者:
张志阳
时间:
2012-3-16 13:38
标题:
同步函数锁
同步函数使用的锁是this,该怎么理解啊?
作者:
李中豪
时间:
2012-3-16 13:43
哪个对象调用函数,this就代表那个对象
作者:
周建
时间:
2012-3-16 13:46
this代表当前正在调用该同步函数的那个对象
作者:
刘元明
时间:
2012-3-16 15:39
函数需要被对象调用,那么函数都有一个所属对象引用,它就是this
作者:
张志阳
时间:
2012-3-16 21:03
原来如此,谢啦
作者:
李晓旭
时间:
2012-3-16 23:07
本帖最后由 李晓旭 于 2012-3-16 23:10 编辑
class Demo
{
public demo()
{
//构造函数
}
public synchronized void method()
{
//非静态同步函数
}
}
class StaticDemo
{
public StaticDemo()
{
//构造函数
}
public static synchronized void method()
{
//静态同步法函数
}
}
//非静态函数,是被对象调用
Demo d = new Demo();
d.method();
//因此在函数内部,同步函数就使用的是对象d 作为多线程共有锁
//所以在函数内,对象就是this
//静态函数,是通过类直接调用静态方法
StaticDemo.method();
//所以函数是使用在内存中的 Demo类 字节码文件对象
//类名.class
复制代码
同步函数使用的锁是this,该怎么理解啊?
首先不是说同步函数使用的锁一定是this!
因为函数分为非静态函数和静态函数两种:
public synchronized void method(){ .......}
public static synchronized void method(){ ...... }
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2