在Java应用程序服务器中,将资源加载到将在servlet之间共享的内存中的最佳方法是什么?
我到底在做什么
我想创建一个监视队列的守护进程线程。此队列可以包含从servlet线程添加到其中的对象。线程将等待一段时间,然后检查队列中是否有项,如果有,则处理并删除它们。这个线程需要在某个时候的某个地方启动。我在想,一个只实现init方法的servlet可以完成这个任务,或者有没有更好的地方可以将这样的启动代码放在应用服务器中?我在处理这个问题时是不是很不可靠?
我发现 this question 公认的答案是使用生命周期监听器。这是一种可移植的方式还是我的代码将绑定到一个应用服务器上。更多的调查让我在留言板上找到了一些帖子,说我可以在一个短时间内做到这一点 ServletContextListener
我通常使用您描述的方法从Servlet间接启动这类工作线程(通常它们存在于执行队列提取和控制处理的其他对象中)。
Google'java worker thread wait notify'有很多例子。