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。最有可能的是,该值不是您期望的值。