zoukankan      html  css  js  c++  java
  • java不重复订单号生成规则

     1 import java.text.DateFormat;
     2 import java.text.SimpleDateFormat;
     3 import java.util.Date;
     4 
     5 public class OrderNo{
     6     private static int sn = 0;
     7       
     8     public static String NextOrderNo(){
     9         if(sn == 999999999)
    10             sn = 0;
    11         else
    12             sn++;
    13         DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
    14         return df.format(new Date()) + padRight(String.valueOf(sn),9, '0');
    15     }
    16     public static String padLeft(String src, int len, char ch) {
    17         int diff = len - src.length();
    18         if (diff <= 0) {
    19             return src;
    20         }
    21 
    22         char[] charr = new char[len];
    23         System.arraycopy(src.toCharArray(), 0, charr, 0, src.length());
    24         for (int i = src.length(); i < len; i++) {
    25             charr[i] = ch;
    26         }
    27         return new String(charr);
    28     }
    29     public static String padRight(String src, int len, char ch) {
    30         int diff = len - src.length();
    31         if (diff <= 0) {
    32             return src;
    33         }
    34 
    35         char[] charr = new char[len];
    36         System.arraycopy(src.toCharArray(), 0, charr, diff, src.length());
    37         for (int i = 0; i < diff; i++) {
    38             charr[i] = ch;
    39         }
    40         return new String(charr);
    41     }
    42     // 防止创建类的实例
    43     private OrderNo(){}
    44     
    45     public static void main(String[] args) {
    46         Thread t1 = new Thread(){
    47             @Override
    48             public void run() {
    49                 for (int i = 0; i < 5000; i++) {
    50                     try {
    51                         sleep(300);
    52                         System.out.println(OrderNo.NextOrderNo());
    53                     } catch (InterruptedException e) {
    54                         e.printStackTrace();
    55                     }
    56                 }
    57             }
    58         };
    59         Thread t2 = new Thread(){
    60             @Override
    61             public void run() {
    62                 for (int i = 0; i < 5000; i++) {
    63                     try {
    64                         sleep(200);
    65                         System.out.println(OrderNo.NextOrderNo());
    66                     } catch (InterruptedException e) {
    67                         e.printStackTrace();
    68                     }
    69                 }
    70             }
    71         };
    72         Thread t3 = new Thread(){
    73             @Override
    74             public void run() {
    75                 for (int i = 0; i < 5000; i++) {
    76                     try {
    77                         sleep(50);
    78                         System.out.println(OrderNo.NextOrderNo());
    79                     } catch (InterruptedException e) {
    80                         e.printStackTrace();
    81                     }
    82                 }
    83             }
    84         };
    85         t1.run();
    86         t2.run();
    87         t3.run();
    88     }
    89 }
    90     
  • 相关阅读:
    负载均衡
    二叉树反转
    hashMap 和红黑树
    linux c++ 服务器编程,收藏一个测试例子
    某某音乐盒面试
    Linux中的文件i节点
    linux 文件格式压缩
    类string的构造函数、拷贝构造函数和析构函数
    计算二叉树的深度
    string转换为decimal
  • 原文地址:https://www.cnblogs.com/1012hq/p/11207760.html
Copyright © 2011-2022 走看看