interrupt相关内容

如何编写可中断的方法

我有一个方法,在概念上看起来像: 对象f(对象o1){ 对象o2 = longProcess1(o1); Object o3 = longProcess2(o2); 返回longProcess3(o3); } 流程本身也可能是复合的: 对象longProcess1(对象o1){ 对象o2 = longSubProcess1(o1); 返回longSubPr ..
发布时间:2018-12-28 15:21:15 Java开发

为什么在可调用中设置中断位

所以,这个资源( http://www.ibm .com / developerworks / java / library / j-jtp05236 / index.html )建议在Thread没有处理中断本身的情况下设置线程中的中断位,“以便代码更高如果想要,可以在调用堆栈中了解中断并对其进行响应。“ 假设我正在使用ExecutorService来运行某些内容一个不同的线程。我构造一个 ..
发布时间:2018-12-24 12:46:32 Java开发

为什么处于BLOCKED状态的线程不会被中断?

我很晚才开始在java中进行多线程处理。 想要了解Thread是否处于BLOCKED状态,为什么它不能被中断?为什么线程只有在处于WAIT状态时才能被中断?基本上,为什么我们需要两个Thread状态,一个可以被中断而另一个不能被中断? 这个问题可能是非常基本的但是,我试图理解事情而不仅仅是记住它们。 解决方案 假设你的意思是让线程停止当前的操作并抛出 InterruptedExce ..
发布时间:2018-12-22 18:45:01 Java开发

如何中断scanner.nextline()调用

关于中断读取系统的问题有很多线索。但我在这里寻找的是如何最好地编写我想要实现的内容的一些建议。 我有一个getlogin()方法需要执行以下操作:要求用户输入所需的登录环境详细信息,如果6秒后用户没有输入有效值(“实时”或“测试”) )然后将userlogin变量设置为“test”并将其返回给调用者。 我对getlogin()实现采取了以下方法: 1 - 启动两个执行以下操作的线 ..
发布时间:2018-12-21 20:50:46 Java开发

为什么Thread.interrupt()不能中断试图获取锁的线程

在Thinking in Java一书中写道, Thread.interrupt()无法中断试图获取同步锁的线程,我想知道为什么? 解决方案 只有在声明抛出阻塞操作时才能中断阻塞操作 InterruptedException 。显然, synchronized 块不会声明它,因此在等待获取锁定时无法中断线程。 或者你可以使用显式锁并调用 Lock.lockInterruptibly( ..
发布时间:2018-12-20 23:05:40 Java开发

如果我对Thread.interrupt()的调用不起作用,如何正确停止一个线程?

众所周知,使用Thread.stop()不会停止运行进程。 通常手册和教程建议使用Thread.interrupt()或一些布尔变量,并从代码内部检查该中断或变量。 但是如果我有一个库方法需要很长时间才能执行,我想让用户有能力停止这个过程?并且库没有给我一个机制来做它(不检查线程中断状态,没有“停止!”变量)? 并且,添加到坏事情,没有库的源代码,或者它太大了,无法编辑它并在适当 ..
发布时间:2018-12-12 19:23:33 Java开发

在Java程序的主线程中调用System.exit(0)和Thread.currentThread()。interrupt()有什么区别?

两者都会导致程序停止执行。但很明显,这种情况必然存在一些差异。它们是什么? 解决方案 摘要 thread.interrupt()不会停止线程。它用于多线程程序中的协调。除非你确切知道你做了什么,否则不要使用它。 抛出 RuntimeException 将(通常)终止线程但不一定该程序。 System.exit(int) 几乎总是终止程序并返回状态代码。 在异常情况下, Syst ..
发布时间:2018-12-10 21:36:37 Java开发

线程如何在Java中关闭?

这是一个简短的问题。在某些时候,我的线程理解它应该自杀。最好的方法是: Thread.currentThread()。interrupt(); return; 顺便说一句,为什么在第一种情况下我们需要使用 currentThread ?是线程不引用当前线程? 解决方案 如果你想要终止线程,然后返回就好了。你不需要调用 Thread.currentThread()。interr ..
发布时间:2018-12-10 11:31:05 Java开发

如果运行该函数的线程被中断,finally块是否会执行?

如果我有一个带有try / finally部分的函数,并且运行它的线程在try块中被中断,那么finally块是否会在中断实际发生之前执行? 解决方案 根据Java教程,“如果执行尝试或 catch 代码的线程被中断或终止, finally 块可能无法执行,即使整个应用程序仍在继续。“ 这是完整的段落: 最后块总是在尝试阻止退出。这个 确保即使出现意外的 异常也会执行 fi ..
发布时间:2018-12-07 18:02:27 Java开发

谁打断了我的线程?

我理解InterruptedException的作用以及它被抛出的原因。但是在我的应用程序中,我在等待我的应用程序只知道的线程上的 SwingUtilities.invokeAndWait()时得到它,而我的应用程序从不调用任何线程上的Thread.interrupt(),它也永远不会将线程的引用传递给任何人。 所以我的问题是:谁打断了我的帖子? 有什么方法可以告诉我吗?是否有理由说I ..
发布时间:2018-12-07 13:14:16 Java开发

Thread.interrupt()是邪恶的吗?

队友做出以下声明: “ Thread.interrupt()本质上是破碎的,应该(几乎)永远不会被使用“。 我试图理解为什么会这样。 这是一个已知的最佳做法,永远不要使用 Thread.interrupt()?你能提供证据证明它为什么会被破坏/错误,不应该用于编写强大的多线程代码吗? 注意 - 我不感兴趣在这个问题中,如果从设计防腐剂中“漂亮”。我的问题是 - 它是否有错误 ..
发布时间:2018-12-06 13:18:27 Java开发

为什么在catch InterruptException块中调用Thread.currentThread.interrupt()?

为什么在catch块中调用Thread.currentThread.interrupt()方法? 解决方案 这是对保持状态。 当你捕获 InterruptException 并吞下它时,你基本上阻止任何更高级别方法/线程组注意到中断。这可能会导致问题。 通过调用 Thread.currentThread()。interrupt(),设置中断标志的线程,所以更高级别的中断处理程序 ..
发布时间:2018-11-26 20:37:27 Java开发

如何中断ServerSocket accept()方法?

在我的主线程中,我有一个而(监听)循环,它在我的ServerSocket对象上调用 accept() ,然后启动一个新的客户端线程,并在接受新客户端时将其添加到Collection。 我还有一个Admin线程,我想用它来发出命令,比如'exit',这将导致所有客户端线程被关闭,关闭自己并关闭主线程,通过转向监听false。 但是, accept()调用 while(监听)循环块,似乎没 ..
发布时间:2018-11-26 13:59:35 Java开发

你如何杀死Java中的线程?

如何在Java中杀死 java.lang.Thread ? 解决方案 请参阅此 Sun关于他们弃用的原因的帖子使用Thread.stop() 。它详细介绍了为什么这是一个糟糕的方法,以及应该采取什么措施来安全地停止线程。 他们推荐的方法是使用共享变量作为标志,要求后台线程停止。然后,该变量可以由请求线程终止的不同对象设置。 ..
发布时间:2018-11-26 12:02:38 Java开发

如何在不杀死解释器的情况下中断本机扩展代码?

我正在开发一个项目,它结合了用C ++编写的高性能算法和Python接口。 C ++类和函数通过Cython编译器封装并暴露给Python。 假设我从Python解释器调用一个长期运行的本机函数(我首选的是IPython)。是否有可能在不杀死解释器的情况下中断或中止该代码的执行? 解决方案 这是使用Ricardo C建议的多处理的可能实现。, 将多处理导入为mpr def ..
发布时间:2018-11-15 12:36:12 C/C++开发

iOS AVAudioSession中断通知无法按预期工作

我想知道我的 AVAudioRecorder 何时无法访问(例如音乐开始播放时)。 As audioRecorderEndInterruption 我专注于 AVAudioSession 的中断通知(但两者都没有按预期工作)。 问题是,如果应用程序在中断发生时仍然在前台,则永远不会调用中断通知。 例如:用户启动和停止播放音乐而不将应用程序移动到后台。 要检测我正在使用的任何 ..

在网卡驱动程序中DMA是否同步?

我的理解是当NIC适配器接收到新数据包时,上半部分处理程序使用DMA将数据从RX缓冲区复制到主存储器。我认为这个处理程序不应该在传输完成之前退出或释放INT引脚,否则新的数据包会破坏旧的数据包。 但是,DMA通常被认为是异步的本身需要中断机制来通知CPU数据传输完成。因此我的问题是,DMA实际上是同步的,或者中断实际上可能发生在另一个中断处理程序中? 解决方案 一般来说,这个通过NI ..
发布时间:2018-08-24 18:07:47 其他开发