Ao rodar, na execução ele apresenta
João batendo na porta
Silvia batendo na porta
Caio batendo na porta
Pedro batendo na porta
Caio Entrando no banheiro
Silvia Entrando no banheiro
João Entrando no banheiro
Silvia fazendo coisa demorada
Caio fazendo coisa rapida
João fazendo coisa rapida
Silvia dando descarga
Silvia lavando mao
Silvia saindo do banheiro
Pedro Entrando no banheiro
Pedro fazendo coisa demorada
Pedro dando descarga
Pedro lavando mao
Pedro saindo do banheiro
Caio dando descarga
Exception in thread "Caio" Exception in thread "João" João dando descarga
João lavando mao
Caio lavando mao
João saindo do banheiro
Caio saindo do banheiro
java.lang.IllegalMonitorStateException
at java.base/java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:175)
at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1007)
at java.base/java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:494)
at br.com.banheiro.Banheiro.fazNumero1(Banheiro.java:29)
at br.com.banheiro.TarefaNumero1.run(TarefaNumero1.java:15)
at java.base/java.lang.Thread.run(Thread.java:833)
java.lang.IllegalMonitorStateException
at java.base/java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:175)
at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1007)
at java.base/java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:494)
at br.com.banheiro.Banheiro.fazNumero1(Banheiro.java:29)
at br.com.banheiro.TarefaNumero1.run(TarefaNumero1.java:15)
at java.base/java.lang.Thread.run(Thread.java:833)