Builds a cache, which either returns an already-loaded value for a given key or atomically computes or retrieves it using the supplied {@code CacheLoader}. If another thread is currently loading the value for this key, simply waits for that thread to finish and returns its loaded value. Note that multiple threads can concurrently load values for distinct keys.
This method does not alter the state of this {@code CacheBuilder} instance, so it can beinvoked again to create multiple independent caches.
@param loader the cache loader used to obtain new values
@return a cache having the requested features
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.