[英]Java Static Thread safety
關於這個問題,我有一個子問題
如果我在Singleton類中定義了此方法
public static Date getDateDiff(Date a, Date b){
return a-b;
}
如果兩個線程同時並發調用此方法並傳遞不同的a,b,那么它們會得到正確的結果嗎?
我的理解是,它們應該得到,因為每個對象都傳遞了另一個對象無法訪問的不同日期對象。
在什么情況下,由於Date對象的覆蓋而導致錯誤的結果嗎?
是的,兩個線程將獲得正確的結果。 錯誤結果的條件是,如果存在其他任何非線程安全的代碼,其中另一個線程可能正在修改另一個線程之一正在傳遞的a或b。 就像您鏈接到問題中的其他答案一樣,如果a或b與另一個線程共享,並且他們在另一個線程正在使用它時對其進行了修改,則可能會遇到問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.