No caso do Java, todo objeto criado pela linguagem possui um monitor intrínseco que pode ser acessado/utilizado pelo uso da palavra reservada synchronized. Além disso, a classe Object (a classe cósmica do Java, aquela que é o Pai de todas!) possui três métodos que são usados com esses monitores intrínsecos:
O uso desta palavra reservada e desses métodos é muito comum em códigos Java que fazem uso de multithreading.
Observe, contudo, que os exemplos apresentados a seguir irão um pouco além do uso destes recursos próprios da linguagem Java, demonstrando em um nível maior de detalhes, como funcionam um monitor e como você poderá construir um, caso julgue necessário.
|
Não se esqueça de que tal programação é extremamente peculiar e deve ser feita com muito zelo, pois erros na ordem de escrita das instruções de um monitor podem por tudo a perder provocando erros graves como deadlock, starvation ou mesmo comportamentos imprevisíveis e irreprodutíveis.
|
Deste modo, um monitor pode ser representado como um tipo de dado abstrato com suas operações e dados, ou seja, no caso da linguagem Java será representado por uma classe com seus métodos e atributos.