ConcurrentHashMap vs. locking

This has better performance under concurrent load.