From my understanding, each of these methods: get() and put() are atomic.
But, when accessing caches like ehcache & memcached, in a CheckThenAct fashion, race conditions will arise.
What should we synchronize on to ensure that if thread1 does a Get() and thread2 does a Get() followed by a Put(), that the first Get() will receive the new value added by thread2 ?