У меня есть следующий код, который извлекает первый элемент из очереди, только если в нем есть как минимум 2 элемента. По какой-то причине он не опрашивает первый элемент. Однако, если я добавлю туда оператор печати, он будет печатать и опрашивать. Метод находится в потоке, и есть еще один поток, добавляющий элемент в очередь, этот поток читает из очереди.
...
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
data: data
Если Оператор println удален, он ничего не напечатает.
На самом деле, пока я добавляю туда что-нибудь, thread.sleep(1) или случайный оператор печати, он будет опрашивать данные и печатать их.
Спасибо за любой вклад.