multithreading - 在 clojure 中使用 at-at 库时应用程序不退出

标签 multithreading clojure

我正在使用 at-at 库并在执行单个任务后,即

(at-at/after 5000 #(println "hello from the past!") my-pool)

我的应用程序没有退出。我正在执行可以吗

(System/exit 0)

在我的申请结束时?这是迄今为止关闭应用程序的唯一方法。

最佳答案

在内部,at-at 使用 ScheduledThreadPoolExecutor ,它使用非守护线程的线程池。在所有非守护线程退出之前,JVM 不会退出。 at-at 提供了一个函数 stop-and-reset-pool!,它可用于优雅地(当工作完成时)或立即停止池,这应该允许JVM 退出。

如果您只是想强制关闭,也可以使用System/exit(但请注意,您的工作实际上不会完成)。

关于multithreading - 在 clojure 中使用 at-at 库时应用程序不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41723408/

相关文章:

multithreading - Clojure:在多个 future 运行计算并不能加快我的程序

r - 加速 gganimate 渲染

c# - 级联线程杀死

java - 如何防止多个 Servlet 线程同时访问静态方法

clojure - 定期调用Clojure中的函数

java - 将常规 Servlet 编码转变为我的 DSL 的起点

java - Java中多线程无法画图

c++ - 使用 volatile bool 变量进行忙等待

clojure - 在 Clojure 中功能性地处理用户输入验证

java - 没有 Java 的 ClojureScript