- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
作为标题。
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
System.out.println(Thread.currentThread().isInterrupted()); //print false, who reset the interrupt?
}
}
});
thread.start();
TimeUnit.SECONDS.sleep(1);
thread.interrupt();
}
捕获“InterruptedException”后,为什么“Thread.currentThread().isInterrupted()”的值为false?
最佳答案
来自 Thread.sleep
的 Javadoc (由 TimeUnit.sleep
调用):
InterruptedException - if any thread has interrupted the current thread. The interrupted status of the current thread is cleared when this exception is thrown.
我认为 isInterrupted()
的目的是让您检测线程是否在 调用会抛出 InterruptedException
的东西之前被中断>。如果您捕获InterruptedException
,则可以公平地假设线程已被中断...
关于java - 捕捉到 "InterruptedException"后,为什么 "Thread.currentThread().isInterrupted()"的值为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9901649/
我对 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()”来检查其中断状
我是一名优秀的程序员,十分优秀!