在一個android項目上用到List來作爲RTP包的隊列,一個線程入隊一個線程出隊,頻率比較高,跑幾秒鐘就掛了,異常:
java.util.NoSuchElementException
這是什麼原因呢,原因是一開始我就認爲java的書結構是線程安全的,但默認情況下並不是這樣的,有一部分數據結構並不是線程安全的,所以我們得在構造的時候用線程安全的版本:
Collections.synchronizedList(new List<int>());
在一個android項目上用到List來作爲RTP包的隊列,一個線程入隊一個線程出隊,頻率比較高,跑幾秒鐘就掛了,異常:
java.util.NoSuchElementException
這是什麼原因呢,原因是一開始我就認爲java的書結構是線程安全的,但默認情況下並不是這樣的,有一部分數據結構並不是線程安全的,所以我們得在構造的時候用線程安全的版本:
Collections.synchronizedList(new List<int>());
ThreadLocal的使用,,,實際上相當於維護了一個Map,其中以鍵值對的形式,存儲了某一個數據被多個線程訪問所對應的值。當然這個數據只能有
JSONArray序列化日期最初用到, 這個是全局設置,會有風險。 String[] dateFormats = new String[] {"yyyyMMdd"}; JSONUtils.getM