给用户分配唯一的ID号,所以需要独占访问,此时不能有其它用户访问此函数
synchronized(this) //加同步锁
{
userId = getNewId(uid);
}
用以上方法是否可行,有没有好的方法?
一般来说是没问题的,不对,你得保证你的这个servlet只有一个
可以,但不建议你这么做,servlet本身是一个单实例多线程的,
如果你这么做,servlet就有点成为了单实例单线程了,对于性能是极不利的.
你可以把synchronized放到getNewId方法里面,只同步你需要独占的部分代码
可以。
这样做
public static Object onlyYou = new Object();
public myFunction(){
...
synchronized(onlyYou){
userId = getNewId(uid);
}
...
}
用onlyYou这个对象的机锁,onlyYou系统中只有一个