读书人

一个循环流水号兑现求评

发布时间: 2012-10-17 10:25:47 作者: rapoo

一个循环流水号实现,求评
给了个需求,要求做一个1 - 999999的循环的流水号生成方法,小弟没做个类似的东西,摸索着写了个,特来求评,还望赐教

/** * 流水号 */private static volatile int serialNumber = 0;/** * 生成流水号 * 从1 - 999999,不足六位,从右往左补0 * @return */public static synchronized String generateSerialNumber(){int n = serialNumber = ++serialNumber;if(n == (999999 + 1)){serialNumber = n = 1;}StringBuffer strbu = new StringBuffer(6);strbu.append(n);for(int i=0, length=6-strbu.length(); i<length; i++){strbu.insert(0, 0);}return strbu.toString();}


生成的数字测过,没问题,就是不知道这么写在多线程时靠不靠谱,当并发多大的时候,会出问题吗?
1 楼 lysino 2011-09-23 若把此问题交给oracle的sequence来解决岂不是很简单,而且还可以支持多应用服务器的情况

读书人网 >编程

热点推荐