Servlet的单例问题:
当一个servlet第一次被访问后,通过init()函数被加载到内存,供所有访问者使用。所以它是单例的。所以如果不加同步机制则可能会出现问题。
比如网络售票系统这种并发性很高的系统,不加线程同步机制会导致票卖多了。
这里有一个原则:如果一个变量需要多个用户共享,则需要加同步机制
synchronized(对象){
//同步代码
}
如果一个变量不需要共享,就不要定义成成员变量,在doGet或doPost中定义。
Servlet的单例问题:
当一个servlet第一次被访问后,通过init()函数被加载到内存,供所有访问者使用。所以它是单例的。所以如果不加同步机制则可能会出现问题。
比如网络售票系统这种并发性很高的系统,不加线程同步机制会导致票卖多了。
这里有一个原则:如果一个变量需要多个用户共享,则需要加同步机制
synchronized(对象){
//同步代码
}
如果一个变量不需要共享,就不要定义成成员变量,在doGet或doPost中定义。