gpt4 book ai didi

java - Simpledate 的线程安全代码

转载 作者:行者123 更新时间:2023-12-02 11:54:28 27 4
gpt4 key购买 nike

您能否告诉我以下代码是否是线程安全的以及如何测试它:

      private static final SimpleDateFormat sdf = new SimpleDateFormat("MMddHHmmss");
Calendar cal = new GregorianCalendar();
TimeZone timezone = cal.getTimeZone();

AppCalendar qCal = new AppCalendar(timezone);
qCal.setDateToday();
qCal.setTimeNow();


}

public static String createTempName(final TimeZone timeZone) {
final AppCalendar calendar = new AppCalendar(timeZone);
calendar.setDateToday();
calendar.setTimeNow();
synchronized (sdf) {
return sdf.format(calendar.getTime());
}
}

我提到我的代码在 JVM 7 上运行,我必须使用此上下文提供的日期类型。不幸的是,无法使用 Java 8 中的 thred save LocalDate。我使用从方法 createTempName 返回的字符串作为数据库列中的唯一键。 appCalendar 是扩展 java.util.GregorianCalendar 的类。

真诚的,

最佳答案

是的,它是线程安全的。您可以按照"Java DateFormat is not threadsafe" what does this leads to?中的方法进行测试。 。如果性能是一个问题,我建议将同步更改为 ThreadLocal,如 Making DateFormat Threadsafe. What to use, synchronized or Thread local 中所示。 .

关于java - Simpledate 的线程安全代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47696171/

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