繁体   English   中英

Calendar.getInstance线程安全

[英]Calendar.getInstance thread safety

如果我有以下方法; 是对Calendar.getInstance()线程安全的调用吗?

 public Date currentTime() {
    Date d = null;
    synchronized(this){
        d = Calendar.getInstance().getTime();
    }
    return d;
 }

我的理解是Calendar.getInstance()不是线程安全的,所以下面的方法不能是线程安全的。 这是正确的吗?

public Date currentTime() {
    return Calendar.getInstance().getTime();

}

我知道Joda-Time被提升为日期时间API的最佳实践,但在这里我坚持使用标准的java.util.Date/Calendar类。

是的, Calendar.getInstance()是线程安全的,因为每次调用都会创建并返回一个新实例。 通过同步或将getTime()返回的值存储在临时变量中,您无法获得任何东西。

在这种情况下,为什么你的意思是线程安全? 您没有修改任何变量,时间由系统管理。 因此,对该方法的任何调用都将为您提供系统的当前时间。 不需要在我看来同步它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM