我正在运行一个线程,其主要操作是使用阻塞函数调用代理,并等待它给它一些东西。
我使用了 volatile boolean 和 Interruption 的已知模式,但我不确定它是否会起作用:当我尝试为 添加 catch 块时InterruptedException
,出现错误:
InterruptedException 无法到达的 catch 块。从 try 语句体中永远不会抛出此异常
所以如果我永远不会得到一个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();
}