simpleDateFormat底层使用的是日历对象创建时间,而对象类的加载就会在类加载过程中因为指令重排引发线程不安全。实际开发过程中遇到了,两个不同的订单同时生成了同一个唯一的订单号~是不同人操作的,不通保单。这中间发生了系统异常,也就是数据交互挂了~解决办法,应急,对表id设置主键自增长。(自我看法,使用synchronized对生成订单号位置进行加琐是解决并发的一个突破口,但不适用高并发。2,使用线程安全的时间创建方法,currentTimeMillus。这些只能解决一些没有线程策略的低层面的框架。更高级一些的框架应该有自己的线程策略,或是适用redis配合雪花算法进行订单号生成,或者使用Uuid。)当然这些只是我在工作中遇到的坑,也欢迎看到这篇文章的大神们多多指点