开发者社区> 问答> 正文

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

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

展开
收起
蛮大人123 2016-02-20 13:56:08 2632 0
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
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多