Java ThreadPoolTaskExecutor未执行提交给它的所有线程

Java ThreadPoolTaskExecutor未执行提交给它的所有线程,java,multithreading,concurrency,threadpool,Java,Multithreading,Concurrency,Threadpool,我有一个用于发送电子邮件的线程池任务执行器。目前它的corePoolSize为5,queueCapacity为默认值,即整数的最大值(无界队列) 我面临的问题是,很少有线程被执行,也很少有线程没有被执行。我已经把日志放在这里确认了这一点,并得出结论,线程已提交给executor,但它们甚至还没有启动 两者都不我得到了拒绝执行异常异常 这是什么原因?您提交给执行器的线程被认为是可运行的,只有运行()会被执行。执行器不知道它是一个线程,执行器使用内部线程来执行任务。因此该线程不会是启动(),而且

我有一个用于发送电子邮件的线程池任务执行器。目前它的corePoolSize为5,queueCapacity为默认值,即整数的最大值(无界队列)


我面临的问题是,很少有线程被执行,也很少有线程没有被执行。我已经把日志放在这里确认了这一点,并得出结论,线程已提交给executor,但它们甚至还没有启动

两者都不我得到了拒绝执行异常异常


这是什么原因?

您提交给执行器的
线程被认为是
可运行的
,只有
运行()
会被执行。执行器不知道它是一个线程,执行器使用内部线程来执行任务。因此该线程不会是
启动()
,而且状态也不会改变


通常,在使用ThreadPoolExecutor时,您应该将任务包装为
可运行的
,而不是
线程

您最初提交的任务是否停止?显示您提交任务的代码。
executorService.submit(新的EmailSenderTask(确认请求,确认响应))
<bean id="emailTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <property name="corePoolSize" value="5" />
</bean>