请教:为什么不能实现同步
public String getMaxCode() {
String date = PubFunction.getFormatDate( "yyMMdd ");
int code = 0;
synchronized(maxCode) {
if (maxCode.length() == 10) {
if (maxCode.indexOf(date) == 0) { // 存在本日数据
String serial = maxCode.substring(6);
code = PubFunction.getDefaultValue(serial);
}
}
maxCode = date + Integer.toString(code + 10001).substring(1);
return maxCode;
}
}
在一个单例里面要产生不重复的序号,在用户要求新增记录的时候拿一个号,然后显示到页面(已设置为即时过期)上让用户输入其他信息,但发现不时出现重号,请指教
------解决方案--------------------直接在类中存放一个静态变量,利用这个静态变量来取得序号值
取完加一
------解决方案--------------------把方法也弄成synchronized的...
------解决方案--------------------同步块里面应该包含同一个对象中可能多个线程都会去改变的资源.
------解决方案--------------------楼主可以用 静态内部类解决只问题
我做网上书城生成订单号就是用的内部类