При заполнении очереди из содержимого файла глубина, кажется, никогда не увеличивается, поскольку элементы не добавляются в эту реализацию.
BlockingQueue<String> q = new SynchronousQueue<String>();
...
fstream = new FileInputStream("/path/to/file.txt");
...
while ((line = br.readLine()) != null) {
if (q.offer(line))
System.out.println("Depth: " + q.size()); //0
}
При замене offer
на add
исключение, если выбрано
Exception in thread "main" java.lang.IllegalStateException: Queue full
...
Что я делаю неправильно? Почему очередь заполняется немедленно, после вставки первого элемента?