ReentrantReadWriteLock

Mecanismo utilizado permite mais concorrência sem detrimento da exclusão mútua, expondo um lock para leitura e outra para escrita.

Lock de Leitura —> Acesso partilhado, onde múltiplas threads com este lock têm acesso à secção crítica para fins de leitura

Lock de Escrita —> Acesso exclusivo, onde apenas uma thread tem acesso à secção crítica para fins de leitura e/ou escrita.

Lock Leitura Lock Escrita
Lock de Leitura
Lock de Escrita

Métodos

ReentrantReadWriteLock() // construtor 
readLock().lock() // adquirir lock de leitura 
readLock().unlock() // libertar lock de escrita 
writeLock().lock() // adquirir lock de escrita 
writeLock().unlock() // libertar lock de escrita

3.pdf

Código do guião

Sem ReentrantReadWriteLock

Com ReentrantReadWriteLock