At this writing, multicore processors are just now becoming inexpensive enough
for midrange desktop systems. Not coincidentally, many development teams are
noticing more and more threading-related bug reports in their projects. In a recent
post on the NetBeans developer site, one of the core maintainers observed that
a single class had been patched over 14 times to fix threading-related problems.
Dion Almaer, former editor of TheServerSide, recently blogged (after a painful
debugging session that ultimately revealed a threading bug) that most Java programs
are so rife with concurrency bugs that they work only “by accident”.
1