Shared Locks

A shared lock allows several processes to simultaneously read an object but not update it. Shared locks enable greater concurrency while ensuring that a process never works with obsolete data. If you lock an object using a shared lock, other processes attempting to update the object or explicitly acquire an exclusive lock wait until the lock is released, but can acquire a shared lock or a reserve lock.