【发布时间】:2012-07-24 19:32:27
【问题描述】:
所以我在 scala 中编写了一个迷你超时库,它看起来与这里的代码非常相似:How do I get hold of exceptions thrown in a Scala Future?
我执行的函数要么成功完成,要么永远阻塞,所以我需要确保在超时时取消执行线程。
因此我的问题是:在超时时,awaitAll 会终止底层actor,还是让它永远运行?
我正在考虑的一种替代方法是使用 java Future 库来执行此操作,因为可以调用一个显式的 cancel() 方法。
【问题讨论】:
-
“永远阻塞”是什么意思 –那是阻塞I / O吗?也许改用异步 I/O。不推荐硬中断 Java 线程。否则,如果该块仍在“接收”中,为什么不使用在您链接到的问题中给出的 Viktor Klang 的答案中的演员方法?然后你可以向那个演员发送一条流产消息。
标签: scala concurrency jvm akka