问题标签 [interrupted-exception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
778 浏览

java - 播放音乐时中断线程

我在中断在应用程序后台播放 mp3 文件的线程时遇到了一些问题。我会循环播放文件并在应用程序关闭时停止它。这是我的主要课程:

这是我的背景音乐课:

当我在 closeApp() 方法中使用 musicThread.interrupt() 时,没有任何反应,并且仍然播放 mp3 文件。我试图用 InterruptedException 插入 catch 子句,但 Eclipse 总是强调它,因为 InterruptedException 不存在......

任何想法 ?

编辑:我使用 Javazoom Player 播放 mp3 文件。我使用 JavaSE-1.6 环境。

谢谢。

0 投票
1 回答
82 浏览

java - 一个非常不清楚的错误,有时会中断我在 Java 中的线程

我知道我应该为一个特殊的错误提供足够的信息。但不可能重现它。我有一个高度多线程的程序。我有一个带有无限while循环的线程。程序的任何部分都不能中断这个线程。我Thread.currentThread().isInterrupted();尽可能多地检查。但有时会发生线程停止运行并出现一个奇怪的异常堆栈跟踪,告诉它无法在某些 Lable 的 setText 方法中将某些类型转换为布尔值,它指向程序的以下行:

我知道我应该换个方式思考!因为我没有标签来设置在这个线程中完成的文本。事实上,在整个程序中,我从不更改 GUI 的任何文本。我只是写到控制台。可能是什么问题?它可能是我的代码中的内存泄漏还是可能是 Java 的错误?

0 投票
1 回答
530 浏览

java - BlockingQueue 在调用之前不处理中断

我正在使用LinkedBlockingQueue默认情况下用于消费者的 RabbitMQ。它有一个阻塞nextDelivery()方法,基本上调用take()队列。

但如果它在调用该方法之前被中断,它不会捕获中断。

它仅在等待时发生中断时才有效 - 这也是 javadoc 中所写的 - 或者如果先阻塞则命中。

我实际上有一个案例,中断恰好在我标记的地方命中。如果我在开始或中间开始睡眠,它会起作用,但假设它总是会起作用仍然不安全。

是否有替代 BlockingQueue 实现解决了这个问题?我不知道它是否消耗了中断,也许静态方法中存在竞争条件它返回false但以某种方式清除设置值?

编辑:这与Thread.interrupted()呼叫或不设置标志无关。如果你注释掉 if block,它又是同样的问题。队列方法一进入就不会抛出InterruptedException,它只是阻塞

0 投票
1 回答
109 浏览

java - 线程中断标志语义

我在理解 Java 线程中断标志的语义时遇到了一些麻烦。我的理解是,该标志只应在线程中断后为真,一旦设置为真,InterruptedException在捕获或等效物或用.interrupted(). 因此,我无法解释为什么会打印以下程序false

(为简单起见排除了一些细节 - 假设可以run()抛出异常。)

0 投票
2 回答
1521 浏览

java - 如何用future中断一个线程,想通过future发出的中断执行一些任务

我是 Java 中的未来和多线程的新手。我有一个简单的问题,结果却很复杂,我有许多线程(它们都有打开的会话),它们是无限打开的。每当一个线程抛出自定义异常(会话超时异常)时,我必须中断所有线程并优雅地关闭所有会话。我所做的是存储线程返回的未来对象(在 ArrayList 中)并循环遍历它,并在一个线程引发异常时为所有对象发出 future.cancel。

这里的问题是,由于一些需求问题以及会话另一端的工作方式,我无法在线程代码中添加 InterruptedException。如果我从我的可调用对象中抛出一个 InterruptedException,它不会到达上面指定的 catch 块。如果我在我的线程中添加睡眠(可以进行测试)并处理 InterruptedException,它会在 future.cancel 发出后立即进入该块。我究竟做错了什么?

0 投票
0 回答
1805 浏览

c# - ManualResetEvent.WaitOne 的功能与 0 超时参数

我正在处理对WaitOneManualResetEvent调用有一些调用的代码。

从 MSDN 文档中,

如果超时为零,则该方法不会阻塞。它测试等待句柄的状态并立即返回。

现在,这是我的一段代码:

在这里,根据文档,我希望它打印 abc,从 WaitOne 返回并打印 def。manualResetEventObject此时未发出信号,因此WaitOne的返回值应为假。

但是, def 永远不会打印,我看到一个ThreadInterruptedException被抛出(有一个try/catch块包围它)。

我不明白为什么这不打印 def 或为什么抛出异常。这里到底发生了什么?

0 投票
2 回答
904 浏览

java - 我应该在抛出异常之前 Thread.currentThread.interrupt() 吗?

我正在实现一个抛出IOException. 在我的实现中,我调用了另一个可以阻塞的方法,因此 throw InterruptedException

语境:

  • 如果我被打断,我想结束治疗;
  • 这不是我自己创建的线程。

我目前的想法是这样做(骨架代码):

这是正确的方法吗?或者我应该只是throw而不是.interrupt()

0 投票
2 回答
262 浏览

android - Universal-Image-Loader 中的任务被中断

最近我在我的项目中使用了 UIL 的 Release 1.9.1 并且我的测试人员反复反馈说,当应用程序第一次启动时图像没有显示,但是当应用程序启动或完成之后就可以了。然后我检查日志,logcat 显示“任务被中断”。然后我在源代码中找到了 InterruptedException 段。原始代码是:

此代码段位于com.nostra13.universalimageloader.coreLoadAndDisplayImageTask中。那么在什么情况下会抛出这个异常,互联网链接速度不佳,设备内存不足,CPU繁忙或其他任何情况?

0 投票
3 回答
7258 浏览

java - How to throw `InterruptedException` while junit testing my class?

I am trying to write some junit for a class which is using CountDownLatch and I am using jmockit library for junit testing.

What is the easiest way to make sure that in the getMapped1Table and getMapped2Table method - I am able to throw an InterruptedException so that I can cover that scenario as well. If you take a look into those two methods, I have a catch block which I am not able to cover.

Is there any way I can make sure that my above two methods are throwing InterruptedException?

Update:-

What I am trying to do is - how to get firstSet.await() to throw an InterruptedException when I am junit testing.

0 投票
3 回答
5189 浏览

java - 中断java中正常运行的线程

我试图中断一个正常运行的线程(它不处于 sleep() 或 wait() 状态)。

在上网时,我知道中断正常运行的线程只会将标志设置为真并继续该过程。

代码片段是

one.java

two.java

从 two.java 当我抛出 InterruptedException 时,我可以在 one.java 处获得异常块,但是在那之后我如何停止线程,因为即使在该线程似乎继续正常进程之后。

我是线程概念的新手,请帮助..