最近使用隊列存放數據,發生了一次GC問題,這裏記錄一下。
開始使用定長阻塞隊列,程序運行正常。
BlockingQueue<String> queue = new ArrayBlockingQueue<>(2000);
之後再阻塞隊列中存放collection對象,出現GC。
BlockingQueue<list<E>> queue = new ArrayBlockingQueue<>(2000);
以爲是collection對象問題,但之後發現是寫入數據過多,阻塞隊列內數據量過大出現的GC,長度改小後該問題消失。
BlockingQueue<list<E>> queue = new ArrayBlockingQueue<>(200);
問題,阻塞隊列最大能存放多大的數據。