gpt4 book ai didi

java.text.SimpleDateFormat 不是线程安全的

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:26:35 25 4
gpt4 key购买 nike

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

在 SimpleDateFormat 类的 JavaDoc 中提到了上述行。

这是否意味着我们不应该将 SimpleDateFormat 对象创建为 Static。

如果我们将它创建为静态的,那么无论我们在哪里使用这个对象,我们都需要将它保存在同步块(synchronized block)中。

最佳答案

没错。您可以在 StackOverflow 上找到有关此问题的问题。我用来将它声明为 ThreadLocal:

private static final ThreadLocal<DateFormat> THREAD_LOCAL_DATEFORMAT = new ThreadLocal<DateFormat>() {
protected DateFormat initialValue() {
return new SimpleDateFormat("yyyyMMdd");
}
};

在代码中:

DateFormat df = THREAD_LOCAL_DATEFORMAT.get();

关于java.text.SimpleDateFormat 不是线程安全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com