在我的应用程序中,我使用ExecutorService进行异步调用。在使用ExecutorService时“刷新”固定大小的线程池
ExecutorService executorService = Executors.newFixedThreadPool(10);
我只在应用程序(基于web)关闭时关闭executorService。最近在调试一些问题时,我正在查看这段代码,并想知道当我强制关闭ExecutorService并重新启动它时,在程序执行过程中是否会出现这种情况,即新的池式线程集。所以我想知道典型的场景/意想不到的应用行为会迫使我这样做?
我检查的典型例外是ExecutionException, InterruptedException, CancellationException
,但除记录它们之外,我没有做太多的工作。
你问是否有服务引发的异常表明你需要“重新启动”它吗?或者你是否问过在外部应用程序行为期间是否需要重新启动执行程序服务?你是否看到似乎表明执行程序服务中的线程不再运行的行为? – Gray 2010-09-29 15:00:35