如何在java中立即终止外部程序的执行?

时间:2016-10-05 15:16:10

标签: java external interrupt thread-sleep cplex

我的程序多次调用数学求解器CPLEX。每次从我执行的Java执行CPLEX时都可以设置时间限制。问题是,在极少数情况下,我的程序只会陷入CPLEX提供的MyObservable+'().length'方法中。我不知道那个错误在哪里,它绝对不在我正在解决的数学模型中,因为在java之外输出并解决它是有效的。但这不是我的问题所在,虽然我当然也要感谢你对此的意见。

我的问题是:无论如何,我如何让我的程序立即离开.solve()方法?在下面的示例中,我尝试解决此问题。在那里,.solve()方法在方法.solve()中调用。

execute()

这种方法不起作用,因为public synchronized void executeSafely(int limitSeconds) { Thread t = new Thread() { @Override public void run() { execute(); } }; t.start(); try { Thread.sleep(3000 * limitSeconds); } catch (InterruptedException e) { e.printStackTrace(); } t.interrupt(); } 方法中没有检查中断,我无法更改该方法。用.solve()替换.interrupt()也不起作用,因为.stop()会导致线程暂停。

那么有没有其他方法可以立即终止外部程序的执行?

0 个答案:

没有答案