Tag: 中断处理

一分钟后立即停止线程

我有一个JButton来调用我的线程。 但我真正想做的是在一分钟之后停止线程! 我的actionListener方法是: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { new Frame2().setVisible(true); Thread t=new Thread(new Frame2()); t.start(); } 我运行一分钟的线程如下: public void run(){ int i; while(!Thread.currentThread().isInterrupted()){ for(i=0;i<=100;i++){ if(i==100){ Thread.currentThread().interrupt(); } try { Thread.currentThread().sleep(600); } catch (InterruptedException ex) { System.out.print("THREAD CLOSED"); return; } } System.out.print("DOING THINGS BLA BLA"); } } 问题:我成功地在一分钟后停止了线程,但我无法做任何想要的事情。 我只想知道如何才能实现这一点,以便只运行一分钟线程,并在线程中我想做我的事情! 但是怎么样? 我错了这种方法吗? 如果,是的那么什么应该是正确的方法?

Java硬件中断处理

我想知道在引发硬件中断时是否可以自动调用Java方法。

为什么interrupt()没有按预期工作,它是如何工作的

我想中断一个线程,但调用interrupt()似乎不起作用,下面是示例代码: public class BasicThreadrRunner { public static void main(String[] args) { Thread t1 = new Thread(new Basic(), “thread1”); t1.start(); Thread t3 = new Thread(new Basic(), “thread3”); Thread t4 = new Thread(new Basic(), “thread4”); t3.start(); t1.interrupt(); t4.start(); } } class Basic implements Runnable{ public void run(){ while(true) { System.out.println(Thread.currentThread().getName()); try { Thread.sleep(1000); } catch (InterruptedException e) […]

中断等待阻塞操作的线程?

我正在运行一个线程,其主要操作是使用阻塞函数调用代理,并等待它给它一些东西。 我已经使用了挥发性布尔值和中断的已知模式,但我不确定它是否会起作用:当我尝试为InterruptedException添加一个catch块时,我收到错误: InterruptedException的无法访问的catch块。 永远不会从try语句主体抛出此exception 因此,如果我永远不会得到InterruptedException ,这意味着我永远不会摆脱阻塞行为 – 因此永远不会停止。 我有点不解。 任何想法? public void run() { Proxy proxy = ProxyFactory.generateProxy(); Source source; while (!isStopped) { try { source = proxy.getPendingSources(); scheduleSource(source); } catch (Exception e) { log.error(“UnExpected Exception caught while running”,e); } } } public void stop() { this.isStopped = true; Thread.currentThread().interrupt(); }

在java Thread中中断外部方法调用

我的java程序使用外部方法(我没有源代码)需要一段时间才能完成,所以我在Thread类中调用了该方法(在其run方法中)。 现在问题是如果用户想要退出程序,我如何立即停止线程(不等待方法结束)。 当我调用Thread的中断方法时,没有任何反应,在外部方法完成之前没有中断的exception。 我以为可能会发生中断的exception,并且在外部方法运行的同时被捕获但可能没有? 我不确定Threads如何正常工作。 那你怎么解决这个问题呢?