java web线程安全的疑问
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?
有这样的可能性吗?
谢谢!!!!