首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问:为什么不能实现同步

2011-12-20 
请教:为什么不能实现同步publicStringgetMaxCode(){StringdatePubFunction.getFormatDate( yyMMdd )in

请教:为什么不能实现同步
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的...
[解决办法]
同步块里面应该包含同一个对象中可能多个线程都会去改变的资源.
[解决办法]
楼主可以用 静态内部类解决只问题
我做网上书城生成订单号就是用的内部类

热点排行