62,621
社区成员
发帖
与我相关
我的任务
分享
class ThreadVO {
public synchronized void fun() {
System.out.println("ThreadVO.fun()");
}
}
这个fun方法的同步锁是对象自身,jthis,所以不同的对象的锁不一样,不能实现同步。
要实现不同对象同步,就必须提供一个全局的锁,让这个类的不同的对象都用这把锁,推荐代码如下:
class ThreadVO {
public void fun() {
// 以类对象为锁,同一个ClassLoader中只有一个对象
synchronized (ThreadVO.class) {
System.out.println("ThreadVO.fun()");
}
}
}
希望楼主学习进步~