【发布时间】:2013-02-09 23:19:06
【问题描述】:
我有下一个项目:
基于 Spring(3.2) 的 Web 应用程序(Tomcat 7),在后台我有几个任务。
我有一个队列,其中包含一些要处理的信息。此队列会定期更新(但只是在它为空时)。
我还有几个线程定期从这个队列和进程中排队数据。
对于调度,我想使用 ScheduledExecutorService。
我有几个问题\疑问:
如何保留此队列?我认为它应该是全球性的。我应该在某个“持有人”类中使其成为静态吗?这不是一个糟糕的设计吗?
用 ScheduledExecutorService 初始化这个队列和所有任务的好地方在哪里? ServletContextLoadingListener 是一个好地方吗?有什么方法可以用 Spring 来初始化它吗?
如果我需要精确控制消费者线程的数量,是否应该使用多个 ScheduledExecutorService 实例?
ArrayBlockingQueue 是否适合这种情况?
【问题讨论】:
标签: java concurrency producer-consumer java.util.concurrent blockingqueue