java.util.concurrent is probably the single best concurrency library I have ever used. Bar none.
When I'm writing in Java, and I find myself writing a lock, my first reaction now is: "This is okay for exploration, but which data structure from java.util.concurrent am I going to have swap in here when it's all done. And can I do it now and save myself a lot of grief."
It only took me 7+ years to come to this realization. Apparently I'm a slow learner. :(