最近使用队列存放数据,发生了一次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);
问题,阻塞队列最大能存放多大的数据。