clojure核心异步和servlet取消部署

时间:2018-12-13 21:43:12

标签: multithreading asynchronous clojure java-threads core.async

我在Servlet程序中使用Clojure的core.async。我怀疑程序中存在内存泄漏,当我从应用程序服务器(Glassfish)取消部署应用程序时,我发现活动线程总数不会减少。

我的问题是:取消部署应用程序时如何清理未使用的core.async线程?

我了解core.async管理自己的thread pools

  1. 它使用cached thread pool来运行(thread)宏。闲置according to the docs 60秒后,池中的线程会自动清理。
  2. 但是,它使用fixed thread pool来运行工作程序。应该调用显式shutdown来停止此线程池,但是该线程池的实现不是公开可见的。

取消部署应用程序时关闭core.async的一种好方法是什么?

0 个答案:

没有答案