关于ThreadPoolTaskExecutor的行为: 假设我将队列大小设置为500. Maxpoolsize为100.如果有500个请求进来,那么池是否包含100并且队列包含400?这意味着当时可以添加额外的100个请求吗? 如果当前有请求在队列中且服务器出现故障,请求是否已经消失?执行程序是否会处理当前正在运行的线程的清理?
答案 0 :(得分:0)
是的,从队列中取出的任务不会计入队列大小,因此您可以添加100个请求。
至于服务器何时停机,这取决于它何时停机。如果进程突然被杀死(如使用SIGKILL),则不会进行清理。否则,它取决于任务的实现方式。 ThreadPoolExecutor
本身不做任何需要“清理”的事情。如果任务正在做一些需要清理的事情,那么任务需要处理这个问题。特别是,当服务器出现故障时,任务线程将被中断,它应该做任何必要的清理工作。