代码之家  ›  专栏  ›  技术社区  ›  Elijah

在Servlet调用之外的Java应用服务器中启动线程或加载共享资源的最佳实践是什么?

  •  1
  • Elijah  · 技术社区  · 15 年前

    在Java应用程序服务器中,将资源加载到将在servlet之间共享的内存中的最佳方法是什么?

    我到底在做什么

    我想创建一个监视队列的守护进程线程。此队列可以包含从servlet线程添加到其中的对象。线程将等待一段时间,然后检查队列中是否有项,如果有,则处理并删除它们。这个线程需要在某个时候的某个地方启动。我在想,一个只实现init方法的servlet可以完成这个任务,或者有没有更好的地方可以将这样的启动代码放在应用服务器中?我在处理这个问题时是不是很不可靠?

    我发现 this question 公认的答案是使用生命周期监听器。这是一种可移植的方式还是我的代码将绑定到一个应用服务器上。更多的调查让我在留言板上找到了一些帖子,说我可以在一个短时间内做到这一点 ServletContextListener

    1 回复  |  直到 9 年前
        1
  •  2
  •   Jason    15 年前

    我通常使用您描述的方法从Servlet间接启动这类工作线程(通常它们存在于执行队列提取和控制处理的其他对象中)。

    Google'java worker thread wait notify'有很多例子。

    推荐文章