0
我遇到了一个奇怪的现象,当我尝试在我创建的线程使用一个成员变量,它不返回正确的值,下面是我的代码片段如何在java线程中正确使用变量?
new Thread() {
public void run() {
while (true) {
//System.out.println(printQueue.isEmpty());
while ((currentOrder = printQueue.poll())!= null) {
printall();
}
}
}
}.start();
printQueue
是我定义了一个队列,当我尝试将值推入队列时结果不同。
当我取消注释打印行时,此currentOrder
将返回一个非null变量,但如果我对该行注释,则currentOrder
将始终返回null。 它是如何发生的以及我应该如何解决它?
是什么类型的打印队列?它是线程安全的吗? –
'队列 printQueue = new LinkedList ()'和PrintInfo是我定义的类。 –
richard