Ciao Ivan,
stavo pensando però che devo continuamente ricevere i messaggi dal server ed alimentare il mio stack dal quale attingo per fare la pop() e visualizzare i messaggi. Push e pop attualmente sono syncronized e se lo stack non ha elementi metto in wait() il metodo pop(). Non appena arriva un messaggio nuovo la push fa la notify().
Ho un po' di confusione in testa....

Secondo te devo separare i metodi push() e pop() mettendoli in thread separati?

Ciao!