time_expire时间过短,刷卡至少1分钟,其他5分钟

今天做并发测试发现,很多都报了这个错。

查交易记录发现,数据库存的交易开始和过期时间间隔有半小时,但是请求日志中时间是一致的。

问题原因:

在 发起交易请求时,使用了SimpleDateFormat类,该类不是线程安全的。

 * 

Synchronization

* *

* Date formats are not synchronized. * It is recommended to create separate format instances for each thread. * If multiple threads access a format concurrently, it must be synchronized * externally. *


结局方案:
每次format都新建一个对象。

你可能感兴趣的:(java基础)