簡體   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