【发布时间】:2013-05-12 19:50:45
【问题描述】:
我在使用我编写的各种新应用程序立即退出 JVM 时遇到问题,这些应用程序通过 Scala 2.10 Futures + Promises 框架生成线程。
似乎至少使用默认执行上下文,即使我使用阻塞,例如
future { blocking { /* work */ }}
没有启动非守护线程,因此 JVM 认为它可以立即退出。
一个愚蠢的解决方法是启动一个正在等待的虚拟 Thread 实例,但我还需要确保该线程在进程完成时停止。
那么我如何强制它们在非守护线程上运行?
【问题讨论】:
-
你在用什么
ExecutionContext?您是自己创建的还是从ExecutionContext.global获取的? -
我认为
global和实例化单线程线程都会发生这种情况,这基本上是我的两种情况。
标签: scala executorservice future