Applied work function locking for multi_caching

When using multi_caching (it doesn't care which caches are included into it), the work function is overloaded when there is a cache miss and high concurrency.