Transaction isolation level settings enable you to change the default behavior of locking (and blocking) at an instance- or transaction-level. Use with caution.
The default is Read Committed. If you use the statement SET TRANSACTION ISOLATION LEVEL, you can increase or decrease the 'isolation' of each request for records, whether to read or write to those records.
The transaction manager, specifically its lock manager component, enforces either the default isolation level or whatever level has been explicitly declared. So, at default, the lock manager says, 'Writers block everyone else. Readers do not block readers. But readers are blocked from reading data that has been modified but not committed by other transactions.'