黑马程序员技术交流社区
标题:
同步函数与静态同步函数的区别
[打印本页]
作者:
象牙
时间:
2014-8-15 21:22
标题:
同步函数与静态同步函数的区别
同步函数与静态同步函数的区别是什么?仅仅是锁不一样吗
作者:
tonglingwang
时间:
2014-8-15 22:22
同步函数默认的锁是this:
.....
public void run()
{
while(true)
{
synchronized(this) //this当前同步函数对象
{... ...}
}
}
public synchronized void show() //同步函数
{
... ...
}
静态同步函数的锁是class对象:
静态进内存时,内存中没有本类对象,但是一定有该类对应的字节码文件对象:类名.class 该对象类型是class;
静态的同步方法,使用的锁是该方法所在类的字节码文件对象 类名.class;
private static int tick=100;
......
synchronized(Ticket.class) //字节码文件对象
......
class Ticket
{
......
public static synchronized void show()
......
}
复制代码
作者:
tommy
时间:
2014-8-16 00:43
静态同步函数锁是class,同步函数锁默认是this或者别的对象,因为静态进内存时是没有对象的
作者:
刘高峰
时间:
2014-8-16 08:58
就是锁不一样
作者:
魏诚东
时间:
2014-8-16 09:25
非静态同步的锁是this或者其他对象,静态同步的锁只能是字节码文件的对象了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2