我有以下两个按钮:
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Thread t = new Thread() {
public void run() {
StreamingExperiment.streamingExperimentMain();
}
};
t.setName("runThread");
t.start();
}
});
和
jButton3.setText("Cancel");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
}
});
JButton3 实际上是一个取消按钮,必须取消正在进行的 StreamingExperiment。在这种情况下我应该如何停止正在进行的线程?
最佳答案
你不能只停止任何线程*。你可以试试interrupting它:
t.interrupt();
但是线程必须能够处理它。这就带来了一个问题,什么作用:
StreamingExperiment.streamingExperimentMain();
实际上呢?如果执行 CPU 密集型操作,线程必须定期检查 isInterrupted()
如果它恰好被设置,则标记并终止。如果它等待 I/O 或 hibernate ,它很可能正常工作 - 参见InterruptedException
.
好吧,从技术上讲你 can ,但由于某种原因,此方法已被弃用。
关于java - 单击按钮停止 Java 中正在进行的进程(线程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9658883/