【发布时间】:2012-03-23 02:00:32
【问题描述】:
我有一个标记为 @WebListener 的 servlet。
public void contextInitialized(ServletContextEvent event) {
schedulerEngine = Executors.newSingleThreadScheduledExecutor();
schedulerEngine.scheduleAtFixedRate(new Batch1(), 0, MILLISECONDS_ITERATE_PA, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch2(), 0, MILLISECONDS_ITERATE_IAS, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch3(), 0, MILLISECONDS_ITERATE_EV1, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch4(), 0, MILLISECONDS_ITERATE_MV1, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch5(), 0, MILLISECONDS_ITERATE_BB, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch6(), 0, MILLISECONDS_ITERATE_EV, TimeUnit.MILLISECONDS);
}
public class BatchX implements Runnable {
@Override
public void run() {
....
}
}
MILLISECONDS_ITERATE_XX = 60000(1 分钟)。
是否有可能某些线程因内存问题而自行停止?
如果在我的BatchX() 运行方法中出现异常(例如NullPointerException),线程会永远停止吗?
【问题讨论】:
标签: java multithreading jakarta-ee servlets scheduledexecutorservice