This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
1.) Writing to a ConcurrentHashMap locks only a portion of the map;
2.) Reads can generally occur without locking.
HOWEVER, that doesn't mean you can just replace all of your HashMap variables with ConcurrentHashMap variables and your code will run
flawlessly. You need, at a minimum, to replace all the "puts" with putIfAbsent.
HIGHLY recommend Java Concurrency In Practice by Brian Goetz (and others).