JiveJdon Community Forums
在线91人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » Java多线程 集群 并行模式
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 3 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
finikes

发表文章: 6
注册时间: 2005年01月23日 08:49
给他发消息
java web线程安全的疑问 发表: 2007年12月24日 19:39 回复
java web线程安全的疑问

假设servlet中需要访问某一个类中的静态方法,比如:
public interface Bean {}

public class AviBean implements Bean {}

public class BookBean implements Bean {}

public class BeanFactory {
private BeanFactory(){}

public static Bean getBean(String name){
return (Bean)Class.forName(name).newInstance;
}
}

该BeanFactory类的静态方法getBean(String name)中有个"局部变量":name

如果该方法非static 那这个name肯定是线程安全的

但是现在该name处于一个static方法内.

那servlet调用这个方法时还是线程安全的吗?

是不是这个name在堆栈中只有一个区域?

这样当name从方法开始被赋值到name被调用会不会因为servlet多线程的问题而发生了不该发生的变化?

打个比方说:会不会
A和B同时通过servlet调用BeanFactory.getBean(String name)

A:BeanFactory.getBean("org.finikes.entity.AviBean");
B:BeanFactory.getBean("org.finikes.entity.BookBean");

而A得到的是BookBean,B得到的是AviBean?

有这样的可能性吗?

谢谢!!!!
finikes

发表文章: 6
注册时间: 2005年01月23日 08:49
给他发消息
re:java web线程安全的疑问 发表: 2007年12月26日 14:45 回复
自己顶!
banq

发表文章: 9074
注册时间: 2002年08月03日 17:08
给他发消息
回复:java web线程安全的疑问 发表: 2007年12月27日 09:23 回复
没有线程问题,需要对对象的生命周期有一个深刻掌握。
shijiezhichuang

发表文章: 2
注册时间: 2008年01月02日 13:33
给他发消息
re:java web线程安全的疑问 发表: 2008年01月02日 13:36 回复
不会。
name是一个对象的句柄,每次调用的时传过来的对象不一样,name所引用的对象就不一样。因此返回的结果就不一样。
这个主题有 3 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam