У меня есть следующий код, который извлекает первый элемент из очереди, только если у него есть хотя бы 2 элемента. По какой-то причине это не опрос первого элемента. Однако, если я добавлю туда инструкцию print, она будет напечатана и опрошена. Метод находится в потоке, и есть еще один поток, добавляющий элемент в очередь, этот поток читает из очереди.
...
public void run(){
while(beginning){
int size = queue.size();
// adding this will cause the program to enter if below: System.out.println(size);
if(size > 1){
System.out.println("data: " + queue.poll());
beginning = false;
}
}
}
...
Если добавить оператор println, он напечатает
1
1
....
2
данные: данные
Если оператор println удаляется, он ничего не печатает.
На самом деле, пока я что-то добавляю, thread.sleep (1) или оператор произвольной печати, он будет опрашивать данные и печатать их
Спасибо за любой ввод.