如果我有以下结构,有人能告诉我如何停止线程吗?
我想在线程 C 到期后停止线程 B。
c = new c();
c.start();
b = new b();
b.start();
class c extends Thread {
@Override
public void run() {
// DRAW IMAGE
// b.stop(); - doenst work
}
}
class b extends Thread {
@Override
public void run() {
// PROGRESS BAR
}
}
最佳答案
没有立即停止线程的好方法。
有
Thread.stop()
,但它很危险且已弃用。不要使用它,除非您彻底分析了您的代码并确定风险可以接受。有
Thread.interrupt()
,但不能保证线程会很快停止,甚至根本不会停止。
例如:
while (!Thread.interrupted()) {
try {
//do stuff
} catch (InterruptedException e) {
// end up
}
}
- 有编写线程定期检查标志的方法,但如果不经常检查标志(意外或设计),则线程不会很快停止。
请引用this了解更多详情
关于java - 如何停止线程 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22655734/