package async.up;import java.util.concurrent.DelayQueue;import java.util.concurrent.Delayed;import java.util.concurrent.TimeUnit;public class DelayRetryUtil {上面的程序中,在高并發環境下,return RETRY_DELAY_QUEUE.offer(e); 會不會有NullPointException,以及為什么了?
1 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
會不會NullPointException 我不太清楚,但是這種雙檢鎖在單例模式下,需要在對象上加volatile,否則在給對象初始化的時候,可能因為重排序的問題,導致第一個if判斷不滿足,但是對象本身并不可用。 你可以網上查一查,雙檢鎖的單例模式,必須要加volatile的。
添加回答
舉報
0/150
提交
取消