Threading is a common issue in most software projects, no matter which language or other technology is involved. When talking about enterprise applications, things become even more important, and sometimes harder.
A single mistake in some thread can affect the whole system, or even the whole infrastructure. Think about some resources that are never released, memory consumption that never stops increasing, and so on.
The Java EE environment has some great features for dealing with these and plenty of other challenges, and this chapter will show you some of them.