 lock updates. 
But locks are reentrant - so thread can request the same lock many times (and correspondent 
number of unlocks is needed to release the lock).
Locking the object doesn't prevent other threads from accessing the object - 
it only has influence on <code>sharedLock</code> and <code>exclusiveLock</code> methods.
So programmer should set proper lock before accessing the object in multithreaded application.
If object is concurrently accessed by several threads in read-only mode, then explicit lock