当服务器出现故障时Spring的ThreadPoolTask​​Executor队列被清除了?pp

时间:2013-11-21 23:58:25

标签: java multithreading spring threadpool

关于ThreadPoolTask​​Executor的行为: 假设我将队列大小设置为500. Maxpoolsize为100.如果有500个请求进来,那么池是否包含100并且队列包含400?这意味着当时可以添加额外的100个请求吗? 如果当前有请求在队列中且服务器出现故障,请求是否已经消失?执行程序是否会处理当前正在运行的线程的清理?

1 个答案:

答案 0 :(得分:0)

是的,从队列中取出的任务不会计入队列大小,因此您可以添加100个请求。

至于服务器何时停机,这取决于它何时停机。如果进程突然被杀死(如使用SIGKILL),则不会进行清理。否则,它取决于任务的实现方式。 ThreadPoolExecutor本身不做任何需要“清理”的事情。如果任务正在做一些需要清理的事情,那么任务需要处理这个问题。特别是,当服务器出现故障时,任务线程将被中断,它应该做任何必要的清理工作。