这个问题在这里已经有了答案:
“Java DateFormat不是线程安全的”这是什么导致的? 10个答案
SimpleDateFormat
是一个以区域敏感的方式格式化和解析日期的具体类。
从JavaDoc
,
但日期格式不同步 。 建议为每个线程创建单独的格式实例。 如果多个线程同时访问一个格式, it must be synchronized externally
。
为了使SimpleDateFormat类成为线程安全的,请查看以下方法:
每次需要使用SimpleDateFormat实例时创建一个新的SimpleDateFormat实例。 虽然这是线程安全的,但它是最慢的方法。 使用同步。 这是一个坏主意,因为你不应该在服务器上阻塞你的线程。 使用ThreadLocal。 这是3中最快的方法(请参阅http://www.javacodegeeks.com/2010/07/java-best-practices-dateformat-in.html)。
Java 8中的DateTimeFormatter
是SimpleDateFormat
不可变且线程安全的替代方案。
链接地址:
http://www.djcxy.com/p/36637.html
上一篇:
Why is Java's SimpleDateFormat not thread
下一篇:
Getting the Current Working Directory in Java