Hi,
By default, no concurrent access protection takes place, but optionally a semaphore for mutual exclusion can be used. This slows down access.cache useSemaphore.
There was enough "awesomes" already :-) so now some critics :-) Wouldn't it be better to rename #useSemaphore to #beThreadSafe or #beSynchronized. Also I would use recursion lock (monitor, if you like) rather than plain mutex. Best, Jan