一个多线程的问题 本帖最后由 Evenque 于 2011-12-09 14:33:16 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很明显这个ServerInstance类属于VO,用于传递参数使用,是不应该给他加上线程同步的。不知道你具体的业务逻辑,个人认为每个线程调用前都重新new 一个ServerInstance 的实例。另外单独使用 Volatile 变量 不足以实现互斥锁,Volatile不具有原子性。 基本类型使用volatile关键字,实现不了原子操作的功能吗? 我的业务逻辑是这样的:这是一个服务器扫描和监控的程序。Server类是对服务器的一个描述,IP、端口,是否需要扫描等信息。ServerInstance里面有一个Server对象,如何根据是否需要扫描标识,创建一个线程按照固定的间隔时间用来扫描此服务器。会有好几个ServerInstance对象,都保存在一个Map里面。另外会有用户会在另外一个线程里面更改各个Server对象的是否需要扫描标识,而ServerInstance里面的扫描线程会根据Server对象的是否需要扫描标识来决定扫描线程是继续还是停止。用户也可能新增加一个Server,这时候就得新增一个ServerInstance,开始扫描。当然,也会删除一个Server。 ServerInstance{ private Server server; public synchronized String getServerProp(){ server.getProp(); } public synchronized void setServerProp(String prop){ server.setProp(prop); }}我想问下,如果这样用synchronized,是不是把整个server对象都锁住了?其他线程想访问server对象的其他属性是,是不是也得等待? 循环双链表类的深拷贝问题 编了个小程序帮忙看看~ 初级!静态方法(变量)的内存分配问题 关于java绘制3D图形的问题 请教一个 JSF,managed-bean.xml配置问题 一个很刺激的程序题! 高手帮帮忙 连ms-sql的问题 为什么用rmiregistry不能启动命名注册器? String.getBytes()问题 Hibernate Query借口的iterate方法 查询缓存的问题。 In JAVA,class function 和 instance function 有什么区别?
这是一个服务器扫描和监控的程序。
Server类是对服务器的一个描述,IP、端口,是否需要扫描等信息。
ServerInstance里面有一个Server对象,如何根据是否需要扫描标识,创建一个线程按照固定的间隔时间用来扫描此服务器。会有好几个ServerInstance对象,都保存在一个Map里面。另外会有用户会在另外一个线程里面更改各个Server对象的是否需要扫描标识,而ServerInstance里面的扫描线程会根据Server对象的是否需要扫描标识来决定扫描线程是继续还是停止。用户也可能新增加一个Server,这时候就得新增一个ServerInstance,开始扫描。当然,也会删除一个Server。
public synchronized String getServerProp(){
server.getProp();
}
public synchronized void setServerProp(String prop){
server.setProp(prop);
}
}我想问下,如果这样用synchronized,是不是把整个server对象都锁住了?
其他线程想访问server对象的其他属性是,是不是也得等待?