SimpleDateFormat类大家在开发过程中肯定使用过无数次了,它主要用来日期的转换与格式化,但是在多线程的环境下,使用这个类会造成数据转换及处理的不一致性,因为SimpleDateFormat类是线程不安全的。
看一下下边这个错误使用示例:
看运行结果:
从控制台可以看出,使用SimpleDateFormat出错了,造成了数据不一致的问题。
下边我们来看第一个解决方案:
首先增加一个Util工具类
修改我们的run方法
再次看运行结果,全部转换成功,多运行几次,结果一样。
接下来我们再看另一个解决方案:
大家都知道ThreadLocal类能使线程绑定到指定的对象,使用这个类也可以解决多线程下SimpleDateFormat处理异常的情况。
运行main,结果同样是全部转换成功。
小知识点,与大家共同学习。