1、背景
該異常出現的原因是集合的參數發生了變更,一般是因爲集合的長度發生了變化,大量出現在某天晚上的壓測中。
2、原因
因爲我在寫新版功能的時候,我就將某個list直接從本地緩存的兜底中讀取,沒有new一個新的list,只是簡單的引用。
開始以爲這種操作沒問題,因爲也只對這個集合進行了讀操作。但是沒想到,對list進行分割的操作,也有可能會導致ConcurrentModificationException異常。
當本地緩存的定時任務更新了這個list時,而此時我又在對這個list進行分割操作,於是在高併發場景下大量報了ConcurrentModificationException。
3、解決方案
在從本地緩存中讀取整個集合的數據時,最好要new一個本地對象來存儲數據,不然很容易發送異常。