interrupt相关内容
我有一个方法,在概念上看起来像: 对象f(对象o1){ 对象o2 = longProcess1(o1); Object o3 = longProcess2(o2); 返回longProcess3(o3); } 流程本身也可能是复合的: 对象longProcess1(对象o1){ 对象o2 = longSubProcess1(o1); 返回longSubPr
..
所以,这个资源( http://www.ibm .com / developerworks / java / library / j-jtp05236 / index.html )建议在Thread没有处理中断本身的情况下设置线程中的中断位,“以便代码更高如果想要,可以在调用堆栈中了解中断并对其进行响应。“ 假设我正在使用ExecutorService来运行某些内容一个不同的线程。我构造一个
..
我很晚才开始在java中进行多线程处理。 想要了解Thread是否处于BLOCKED状态,为什么它不能被中断?为什么线程只有在处于WAIT状态时才能被中断?基本上,为什么我们需要两个Thread状态,一个可以被中断而另一个不能被中断? 这个问题可能是非常基本的但是,我试图理解事情而不仅仅是记住它们。 解决方案 假设你的意思是让线程停止当前的操作并抛出 InterruptedExce
..
关于中断读取系统的问题有很多线索。但我在这里寻找的是如何最好地编写我想要实现的内容的一些建议。 我有一个getlogin()方法需要执行以下操作:要求用户输入所需的登录环境详细信息,如果6秒后用户没有输入有效值(“实时”或“测试”) )然后将userlogin变量设置为“test”并将其返回给调用者。 我对getlogin()实现采取了以下方法: 1 - 启动两个执行以下操作的线
..
在Thinking in Java一书中写道, Thread.interrupt()无法中断试图获取同步锁的线程,我想知道为什么? 解决方案 只有在声明抛出阻塞操作时才能中断阻塞操作 InterruptedException 。显然, synchronized 块不会声明它,因此在等待获取锁定时无法中断线程。 或者你可以使用显式锁并调用 Lock.lockInterruptibly(
..
基本上我希望每次调用一个函数,10毫秒。 我怎样才能在Java中实现它? 解决方案 您可能需要查看计时器。
..
在 Java SE 7 中查询JavaDocs和 Thread.interrupt()方法的源代码这个: public void interrupt(){ if(this!= Thread.currentThread()) checkAccess(); synchronized(blockerLock){ Interruptible b = blocker; if(b!=
..
众所周知,使用Thread.stop()不会停止运行进程。 通常手册和教程建议使用Thread.interrupt()或一些布尔变量,并从代码内部检查该中断或变量。 但是如果我有一个库方法需要很长时间才能执行,我想让用户有能力停止这个过程?并且库没有给我一个机制来做它(不检查线程中断状态,没有“停止!”变量)? 并且,添加到坏事情,没有库的源代码,或者它太大了,无法编辑它并在适当
..
两者都会导致程序停止执行。但很明显,这种情况必然存在一些差异。它们是什么? 解决方案 摘要 thread.interrupt()不会停止线程。它用于多线程程序中的协调。除非你确切知道你做了什么,否则不要使用它。 抛出 RuntimeException 将(通常)终止线程但不一定该程序。 System.exit(int) 几乎总是终止程序并返回状态代码。 在异常情况下, Syst
..
这是一个简短的问题。在某些时候,我的线程理解它应该自杀。最好的方法是: Thread.currentThread()。interrupt(); return; 顺便说一句,为什么在第一种情况下我们需要使用 currentThread ?是线程不引用当前线程? 解决方案 如果你想要终止线程,然后返回就好了。你不需要调用 Thread.currentThread()。interr
..
如果我有一个带有try / finally部分的函数,并且运行它的线程在try块中被中断,那么finally块是否会在中断实际发生之前执行? 解决方案 根据Java教程,“如果执行尝试或 catch 代码的线程被中断或终止, finally 块可能无法执行,即使整个应用程序仍在继续。“ 这是完整的段落: 最后块总是在尝试阻止退出。这个 确保即使出现意外的 异常也会执行 fi
..
我理解InterruptedException的作用以及它被抛出的原因。但是在我的应用程序中,我在等待我的应用程序只知道的线程上的 SwingUtilities.invokeAndWait()时得到它,而我的应用程序从不调用任何线程上的Thread.interrupt(),它也永远不会将线程的引用传递给任何人。 所以我的问题是:谁打断了我的帖子? 有什么方法可以告诉我吗?是否有理由说I
..
队友做出以下声明: “ Thread.interrupt()本质上是破碎的,应该(几乎)永远不会被使用“。 我试图理解为什么会这样。 这是一个已知的最佳做法,永远不要使用 Thread.interrupt()?你能提供证据证明它为什么会被破坏/错误,不应该用于编写强大的多线程代码吗? 注意 - 我不感兴趣在这个问题中,如果从设计防腐剂中“漂亮”。我的问题是 - 它是否有错误
..
作为标题。 public static void main(String [] args)throws InterruptedException { Thread thread = new Thread(new Runnable(){ @Override public void run(){ try { TimeUnit.SECONDS.sleep(2); } catch
..
为什么在catch块中调用Thread.currentThread.interrupt()方法? 解决方案 这是对保持状态。 当你捕获 InterruptException 并吞下它时,你基本上阻止任何更高级别方法/线程组注意到中断。这可能会导致问题。 通过调用 Thread.currentThread()。interrupt(),设置中断标志的线程,所以更高级别的中断处理程序
..
在我的主线程中,我有一个而(监听)循环,它在我的ServerSocket对象上调用 accept() ,然后启动一个新的客户端线程,并在接受新客户端时将其添加到Collection。 我还有一个Admin线程,我想用它来发出命令,比如'exit',这将导致所有客户端线程被关闭,关闭自己并关闭主线程,通过转向监听false。 但是, accept()调用 while(监听)循环块,似乎没
..
如何在Java中杀死 java.lang.Thread ? 解决方案 请参阅此 Sun关于他们弃用的原因的帖子使用Thread.stop() 。它详细介绍了为什么这是一个糟糕的方法,以及应该采取什么措施来安全地停止线程。 他们推荐的方法是使用共享变量作为标志,要求后台线程停止。然后,该变量可以由请求线程终止的不同对象设置。
..
我正在开发一个项目,它结合了用C ++编写的高性能算法和Python接口。 C ++类和函数通过Cython编译器封装并暴露给Python。 假设我从Python解释器调用一个长期运行的本机函数(我首选的是IPython)。是否有可能在不杀死解释器的情况下中断或中止该代码的执行? 解决方案 这是使用Ricardo C建议的多处理的可能实现。, 将多处理导入为mpr def
..
我想知道我的 AVAudioRecorder 何时无法访问(例如音乐开始播放时)。 As audioRecorderEndInterruption 我专注于 AVAudioSession 的中断通知(但两者都没有按预期工作)。 问题是,如果应用程序在中断发生时仍然在前台,则永远不会调用中断通知。 例如:用户启动和停止播放音乐而不将应用程序移动到后台。 要检测我正在使用的任何
..
我的理解是当NIC适配器接收到新数据包时,上半部分处理程序使用DMA将数据从RX缓冲区复制到主存储器。我认为这个处理程序不应该在传输完成之前退出或释放INT引脚,否则新的数据包会破坏旧的数据包。 但是,DMA通常被认为是异步的本身需要中断机制来通知CPU数据传输完成。因此我的问题是,DMA实际上是同步的,或者中断实际上可能发生在另一个中断处理程序中? 解决方案 一般来说,这个通过NI
..