Scala期货在演员中创造无限线索

时间:2014-03-05 02:18:38

标签: multithreading scala actor future

我在actor中使用期货和超时,以避免系统等待多长时间执行命令:

  val _output = future { "myCommand.sh" !! }

  output = try {
    Await.result(_output, 3 minutes)
  } catch {
    case e: TimeoutException => {
      LOG.warn(s"Timeout for command. Will return empty.")
      ""
    }
  }

  System.out.println("Number of active threads from the given thread: " + Thread.activeCount());

我从不同的演员那里运行这个代码数百次。我注意到正在运行的线程数无限增加。 “myCommand.sh”通常需要几秒钟才能运行。为什么会这样?使用期货有限制吗?

编辑1:

运行一段时间后,运行1或2秒的所有进程开始记录TIMEOUT。

0 个答案:

没有答案