平时使用SimpleDateFormat的时候都是在单线程的情况下使用的,今天在改写别人的代码,发现每个类中都会写大量的SimpleDateFormat实例。作为一个程序特有的洁癖开始对代码进行优化。
其实所谓优化操作也很简单,就是把所有的SimpleDateFormat抽到一个DateUtils类中,并提供静态方法。
优化之后,奇怪的事情发生了。部分程序报下面异常:
- 1
带着疑惑搜索解决方案,并查看项目代码,结果发现自己有些优化真是好心办坏事。原来,部分代码用到了多线程。只顾着优化,忽略了多线程时不能使用SimpleDateFormat。原因很简单SimpleDateFormat是线程不安全的。
在此记录一下自己踩的坑。
转自:http://blog.csdn.net/wo541075754/article/details/53177139