【问题标题】:Why a thread would interrupt another thread [duplicate]为什么一个线程会中断另一个线程[重复]
【发布时间】:2013-07-05 18:12:58
【问题描述】:

在Java多线程应用程序中,我们处理InterruptedThreadException。如果另一个线程中断当前线程,则抛出此异常。现在,当另一个线程知道它将导致异常时,它可能想要中断当前线程的原因是什么?

【问题讨论】:

标签: java multithreading interrupt


【解决方案1】:

很多原因。但最流行的是取消线程上的某些任务。

详情请见http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html

【讨论】:

    【解决方案2】:

    在大多数情况下,通知Thread 应该中止。通常,执行某种批处理操作的工作线程的实现方式是在中断时自行终止(即退出其run() 方法)。

    不幸的是,很多程序员只是简单地抓住并吞下它,这是一种非常非常糟糕的做法。如果Thread 不期待InterruptedException,它应该重新抛出,或者如果它不能抛出它应该恢复其中断状态(如果被接口限制为例如)通过调用

    catch (InterruptedException e) {
        Thread.currentThread().interrupt();
    }
    

    【讨论】:

    • @Downvoter,请解释否决票。
    • 你的回答对我来说很有意义。可能是因为他吃掉了他所有的 InterruptedExceptions 而被冒犯的人。
    • 你们不懂 Java,你可以随时吃中断的异常,我已经做了很多年了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2018-05-10
    相关资源
    最近更新 更多