Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

6
  • Thanks Anatoly, Actually I'm not going to increase or decrease the pool size, but want to terminate the thread. As I have shown above, the exact thread, is at waiting status, not terminated. each time the job runs, it created a new thread with extinct thread id, but the thread never terminates. Have you encountered this situations? Commented Nov 2, 2015 at 9:29
  • sorry I made a mistake, it's not always distinct each time. but it's true that the original thread seems not terminated. Commented Nov 2, 2015 at 9:34
  • the number of threads that are not terminated depends on your pool configuration. Threads are not terminated for performance reasons - it's the way how thread pool works. Just test it on number of executions more then your pool size and you will see that threads are reused. Commented Nov 2, 2015 at 9:45
  • that came to my mind before, but i have no idea how to configure this in spring boot, with annotation. With xml or native java executor, it's much simpler. Commented Nov 2, 2015 at 9:55
  • If you still want to terminate threads - use cached thread pool. "Creates a thread pool that creates new threads as needed, but will reuse previously constructed threads when they are available. These pools will typically improve the performance of programs that execute many short-lived asynchronous tasks. Calls to execute will reuse previously constructed threads if available. If no existing thread is available, a new thread will be created and added to the pool. Threads that have not been used for sixty seconds are terminated and removed from the cache" Commented Nov 2, 2015 at 9:58