开发者社区 问答 正文

线程安全怎么解决new String 问题

场景是:一个订单号只能一个在付款,只能一个线程处理,不同的订单号支持并发处理
现在如果是new String("20140719140818");就有问题怎么解决
如果不是new出来的,什么情况会出现问题
screenshot

展开
收起
蛮大人123 2016-02-20 13:56:08 2972 分享 版权
2 条回答
写回答
取消 提交回答
  • 没觉得有问题
    2019-07-17 18:45:17
    赞同 展开评论
  • 我说我不帅他们就打我,还说我虚伪

    public synchronized static void pay
    方法加上synchronized 就行了

    或者这样
    private static Object lock= new Object();
    public static void pay(String serNo){
    synchronized (lock) {
    System.out.println(Thread.currentThread().getName() + "," );
    try {
    Thread.sleep(5000);
    } catch (InterruptedException e) {
    e.printStackTrace();

     }

    }
    }

    2019-07-17 18:45:17
    赞同 展开评论
问答分类:
问答地址: