多线程同步问题 看你这个fun方法是什么级别的同步了是类级的还是对象级的,如果是对象级的,你对象A和对象B都是两个不同的对象了当然不会同步。如果是类级的同步,同步锁是字节码class,这个锁在内存中只有一份不管你同类的对象有几个都是同步的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主你好,你的问题里面有一层深的含义呢,如果说你的那个类中的同步发放格式如下: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()"); } }}希望楼主学习进步~ 关于多态的理解?? java swing 怎么给字体加粗,加大 java线程池的问题 看似简单,又有点捉摸不透的split方法,如果你还是在用1.4之前的方法就别进来了 求一道JAVA笔试题的实现算法和代码!? 这个问题一直想不通,请各位进来看下 小问题 根据参数返回类的属性值 请问swing中如何改变按钮大小 JBuider9 的用户指南(中文版) 怎样单独运行 自建包中的类 Swing调用的FileChooser不能是本地的,是吗 java两个map合并
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()");
}
}
}
希望楼主学习进步~