Java BlockingQueue-该进程不';我不想停下来
为什么此过程不停止,即即使它满足“如果”条件,也要遵循说明?在这种情况下,打破循环的最佳方式是什么Java BlockingQueue-该进程不';我不想停下来,java,Java,为什么此过程不停止,即即使它满足“如果”条件,也要遵循说明?在这种情况下,打破循环的最佳方式是什么 public class Writer implements Runnable { Author author; int i = 0; public Writer(Author autor) { this.author = autor; } @Override public void run() { while
public class Writer implements Runnable {
Author author;
int i = 0;
public Writer(Author autor) {
this.author = autor;
}
@Override
public void run() {
while (true) {
try {
if (i == author.getInt()) {
break;
} else {
i++;
System.out.println(i);
System.out.println(author.getInt());
System.out.println("Queue txt: " + author.getQueque().take());
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
如果达到
中断
,它将退出,而循环。您正在谈论阻止的take
方法吗?您使用过debugger吗?这将从队列中删除i
项,如果没有足够的项,则进行阻止,假设author.getInt()
始终返回相同的数字。如果它阻塞,它将永远等待其他线程将其需要的项添加到队列中。如果由于某种原因无法使用调试器,请为“i”的每个值尝试System.out.println。最有可能的是,该值不是您期望的值。