- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我找到了JavaDoc的方法:
返回:true 如果该线程已被中断;否则为 false。
我觉得我对这个方法的理解有问题。此外,我可能误解了Thread中“中断”的概念。
欢迎任何解释!谢谢!
代码片段:
在线程定义中:
public void run() {
try {
//Do something
} catch (InterruptedException e) {
System.out.println(isInterrupted());//Always false
return;
}
}
调用:
theThread.interrupt();
最佳答案
此行为通常记录在引发该异常的方法中。例如,Object.wait()
的 javadoc 表示:
"
InterruptedException
- if any thread interrupted the current thread before or while the current thread was waiting for a notification. The interrupted status of the current thread is cleared when this exception is thrown."
事实上,异常本身的 javadoc 是这样说的:
"Occasionally a method may wish to test whether the current thread has been interrupted, and if so, to immediately throw this exception. The following code can be used to achieve this effect:
if (Thread.interrupted()) // Clears interrupted status!
throw new InterruptedException();
请注意他们如何强调在抛出异常之前应该清除标志。
<小时/>为什么它被设计成这样工作?您必须询问设计人员,但我希望他们认为异常处理程序应该处理这种情况,因此此时不需要仍然设置该标志。 (如果处理程序不能完全处理这种情况,它可以重新抛出异常,或者调用 Thread.getCurrentThread.interrupt() 再次设置标志。)
关于java - 为什么Thread.isInterrupted()总是返回false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61335756/
我对 Thread 子类取消政策的实现有疑问。这样做似乎是常见的做法: class A extends Thread { [...] public final void run() {
我研究java线程,一时看不懂:在下面的代码中 public class ThreadsTest { public static void main(String[] args) throws
用interrupt()做实验,发现isInterrupted()总是false。 另一件事是用 Thread.interrupted() 替换 isInterrupted() 会使线程停止。 有人可
一,介绍 本文记录JAVA多线程中的中断机制的一些知识点。主要是stop方法、interrupted()与isInterrupted()方法的区别,并从源代码的实现上进行简单分析。 JAVA中有
我正在玩线程,并从我的程序中发现了一些我无法理解的奇怪输出。 这是我的 Self 类: public class Self { public static void main(String[]
我找到了JavaDoc的方法: 返回:true 如果该线程已被中断;否则为 false。 我觉得我对这个方法的理解有问题。此外,我可能误解了Thread中“中断”的概念。 欢迎任何解释!谢谢! 代码片
假设我有以下代码: while(!Thread.currentThread().isInterrupted()){ //do something Thread.sleep(500
我正在浏览 Javadoc for interrupts .我确实了解 Thread 类的两种方法之间的区别:interrupted() 和 isInterrupted()。引用文档: When a
我找到了JavaDoc的方法: 返回:如果此线程已被中断,则为 true;否则为假。 我认为我对方法的理解有问题。此外,我可能会误解 Thread 中的“中断”概念。 欢迎任何解释!谢谢! 代码片段:
这个问题已经有答案了: Why does Thread.isInterrupted () always return false? (4 个回答) 已关闭 5 年前。 我遇到了奇怪的行为。所有消息来源
我想知道是否有人可以消除我对我遇到的实现问题的困惑;如果 Thread.interrupted() 清除当前线程的标志,并告诉您当前线程是否被中断,我缺乏理解的是静态范围。静态函数如何知道我当前的线程
也许,这是Thread.isInterrupted doesn't work, Thread.interrupted does的重复问题.但是由于我使用了一种完全不同的方式来调用 Thread.isI
从 java 源代码来看,它看起来像是放入 native 代码。成本大致相当于 volatile 读取还是需要获取某种类型的锁? 最佳答案 Thread.isInterrupted() 是一个调用成本
考虑以下 JUnit 测试: @Test public void testSettingInterruptFlag() throws InterruptedException { Thread
我对下面程序中 thread.isInterrupted 的行为有点困惑。 public class ThreadPractice { public static void main(Stri
我有一个线程调用work()方法,这是一个简单的while(true)-loop,如下所示; public void work() throws InterruptedException {
当我修改一些旧代码时,我遇到了。 public void stop() { if (this.simulationThread != null) { this.simulati
下面的程序演示了这个问题(最新的 JVM 等等): public static void main(String[] args) throws InterruptedException { /
Java问题:据我所知,线程内部检查线程是否收到中断信号有两种方法,Thread.interrupted()和Thread.isInterrupted() ,它们唯一的区别是前者重置了内部中断标志
在我们的应用程序中,我们有线程执行特定操作。收到事件后,我们需要中断那些正在进行的线程。这些线程将通过调用“Thread.currentThread().isInterrupted()”来检查其中断状
我是一名优秀的程序员,十分优秀!