多线程同步问题 看你这个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()"); } }}希望楼主学习进步~ 求赐教 一个Socket的问题,谢谢回答!!! 高分求一个Java基础知识 class中的构造器 ■■■■■讨论如何 实现比较快速的读取5000万条数据■■■■■ POI出错!-小妹在线等 怎样在程序运行的时候,获取当前运行的java代码的行数?就像Log4J那样,可以在后台看到当前代码所在的java文件,代码行等 。。。 socket发出请求对方无应答如何自动关闭socket或报错??? 为啥有错??????????? Date date = new Date();为什么date是null 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()");
}
}
}
希望楼主学习进步~