【发布时间】:2011-04-13 16:30:37
【问题描述】:
我有一个关于线程安全的问题。据我所知,SimpleDateFormat 不是线程安全的。我想知道如果我在我的 spring 控制器中使用它会产生什么效果:
private final static SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd yyyy", Locale.US);
稍后在我的控制器功能中,我按如下方式使用它:
try {
changedate = changedate.substring(0, 15);
calcDate = dateFormat.parse(changedate);
} catch (ParseException e2) {
logger.error("Date Parsing Problem", e2);
}
calcDate 然后被添加到我的模型对象中并返回一个 ModelAndView。
那么这样使用会遇到什么样的问题呢?是否会简单地删除 static 关键字来解决任何问题,因为每个线程都将使用自己的 dateFormat 实例?任何关于线程安全的主题的澄清将不胜感激。
谢谢
【问题讨论】:
-
这让我想起了我前段时间提出的一个问题,虽然它没有具体回答您的问题,但您可能会发现查看使用 SimpleDateFormat 的替代方法很有用。 stackoverflow.com/questions/4107839/…
-
感谢您的链接。您最终实施了哪种技术?
-
选项 3 对我很有效。
标签: java spring thread-safety