【发布时间】:2019-07-08 17:54:48
【问题描述】:
我有这个springboot应用程序,它大量使用带有@Async注释的线程,我没有配置ThreadPoolTaskExecutor,因为我认为,当线程说thread-1完成任务时,其他任务可以使用回这个thread-1。
但从我从日志中观察到的情况,似乎有时线程数会上升到数千个,如下所示:
2019-07-09 01:48:59.259 INFO 12592 --- [TaskExecutor-1] .s.d.r.c.TestingService :Something is running.
...... //Other threads running
2019-07-09 09:48:59.259 INFO 12592 --- [TaskExecutor-3432] .s.d.r.c.TestingService :Something is running.
我怀疑这些线程都没有被重用。
这是否意味着编号3432之前的那些线程没有被重用?还要消耗内存?
更新:
我其实查了一下日志,比如这个thread-255已经完成了,但是这个线程里已经没有任务安排了。
2019-07-08 22:23:37.407 INFO 1 --- [TaskExecutor-255] c.d.v.c.j.impl.LoadSomethingAsync : Something is running
【问题讨论】:
标签: java multithreading spring-boot asynchronous