假设我有两个线程A
,并且B
都在运行。突然B
决定终止A
,因此A
应该尽快终止。我不想A
立即终止,但是当它达到稳定状态时。
一个天真的解决方案是使用一个共享变量terminatePlease
,它A
会在每次达到稳定状态时进行检查。
代码的原型如下所示:
class A extends Thread {
boolean terminatePlease;
public void run() {
while (true) {
if (terminatePlease)
return;
doUninterruptableTasks();
}
}
}
有没有其他并发模式来处理这种情况?