Threads e sincronismo

public class Métodos { boolean liberado; synchronized void getMessage(String nomeThread) throws InterruptedException { if(!liberado) { wait(); } } }O método da classe acima é acessada por outras classes herdadas de Thread.
Posso porque não posso tirar o modificador synchronized do método?

quando eu tiro, dá o seguinte erro:

Exception in thread “Thread-1” java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method)

O melhor lugar para entender isso é a própria documentação dos metodos wait e notify, se não conseguiu entender dá posta aqui a dúvida.

Você utiliza o Synchronized para definir prioridade sobre o que é concorrente nas Threads, e o Wait e Notify para dar um sincronismo no objeto em uma situação de semáforo

Seguinte velho,

Os métodos wait e notify só podem ser usados dentro de contextos sincronizados, eis o porque da java.lang.IllegalMonitorStateException está sendo lançada. O método wait serve para fazer a thread atual entrar em estado de suspensão, ela volta a ativa quando recebe um ‘notify’ ou um ‘notifyAll’.

[]'s