Thread leaks = hidden production killers.
What helped:
- Thread dumps via
jstack
- Analyzing executor pools
- Setting thread naming conventionsAlways clean up thread pools in shutdown hooks.