相关疑难解决方法(0)

中断等待阻塞操作的线程?

我正在运行一个线程,其主要操作是使用阻塞函数调用代理,并等待它给它一些东西.

我已经使用了挥发性布尔值和中断的已知模式,但我不确定它是否会起作用:当我尝试添加一个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();
  }
Run Code Online (Sandbox Code Playgroud)

java multithreading interrupt-handling

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

interrupt-handling ×1

java ×1

multithreading ×1