Yes but... no. If it's not thread-safe and multiple threads try to get the value at the same time, multiple executions of getCacheItem are stated, and the first execution to end provides the value and other executions are ignored. But they still run. And we want to make sure they run only once, hence the thread-safe Lazy.