中断异常的不同行为

时间:2017-06-16 05:02:24

标签: java

当我运行Test1时,不会显示interrupt例外,但当我运行Test2时,会出现interrupt例外情况。

我真的想知道背后的原因。

public class Test1 {
        public static void main(final String[] args) throws InterruptedException {
            int a = 10;
            Thread.currentThread().interrupt();
            System.out.println(a);
            }
        }

当我运行以下程序时,异常就在那里,我真的不确定为什么,即使它没有等待(即队列是空的)。

 public class Test2 {
        public static void main(final String[] args) throws InterruptedException {
            BlockingQueue<Integer> q = new LinkedBlockingQueue<Integer>(2);
            Thread.currentThread().interrupt();
            System.out.println(q.take());
            }
        }

请帮助我理解为什么java表现得像这样。

感谢。

0 个答案:

没有答案