zoukankan      html  css  js  c++  java
  • 单例模式生成订单编号

    package com.jeeplus.modules.biz.util;

    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Random;

    /**
    * 单例模式
    * 生成订单编号
    */
    public class SingletonUtil {
    private volatile static SingletonUtil singletonUtil;
    private SingletonUtil(){}
    public static SingletonUtil getSingletonUtil(){
    if (singletonUtil == null){
    synchronized (SingletonUtil.class){
    if(singletonUtil==null){
    singletonUtil = new SingletonUtil();
    }
    }
    }
    return singletonUtil;
    }

    /**
    * 生成编号
    * @param prefix
    * @return
    */
    public String makeOrderNum(String prefix){
    SimpleDateFormat simpleDateFormat;
    simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
    Date date = new Date();
    String str =prefix + "-" + simpleDateFormat.format(date);
    Random random = new Random();
    int ranNum = (int) (random.nextDouble() * (99999 - 10000 + 1)) + 10000;// 获取5位随机数
    System.out.println("生成订单号:"+str + ranNum);
    return str + ranNum;// 当前时间
    }

    /**
    * 测试
    * @param args
    */
    public static void main(String[] args) {
    // 测试多线程调用订单号生成工具
    try {
    for (int i = 0; i < 100; i++) {
    Thread t1 = new Thread(new Runnable() {
    public void run() {
    SingletonUtil makeOrder = new SingletonUtil();
    String prefix="HD";
    makeOrder.makeOrderNum(prefix);
    }
    }, "at" + i);
    t1.start();

    Thread t2 = new Thread(new Runnable() {
    public void run() {
    SingletonUtil makeOrder = new SingletonUtil();
    String prefix="AB";
    makeOrder.makeOrderNum(prefix);
    }
    }, "bt" + i);
    t2.start();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
  • 相关阅读:
    websocket协议
    LeakCanary 中文使用说明
    编程习惯1
    Spring事务管理(详解+实例)
    微信 JS API 支付教程
    mi面试题
    最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)
    .Net 高效开发之不可错过的实用工具
    手机版开发框架集合
    node.js建立简单应用
  • 原文地址:https://www.cnblogs.com/duanqiao123/p/8717541.html
Copyright © 2011-2022 走看看