Melhorando a implementação de Thread do WebSocketRadar

Foi observado que o código do WebsocketRadar consumia uma quantidade excessiva de CPU, mesmo sem estar sendo usado. O método usado para "dormir" a thread, o Thread.yield, na própria documentação, recomenda seu uso apenas para debug e testes. De acordo com uma das respostas do StackOverflow, http://stackoverflow.com/questions/6979796/what-are-the-main-uses-of-yield-and-how-does-it-differ-from-join-and-interr , que referencia um outro site, Thread.yield nunca deveria ser usado, pois sua implementação é dependente do sistema operacional.

Alterei a implementação usando um simples esquema de wait()/notify() e, com efeito, o uso de CPU, que ficava sempre em 25% (mesmo sem estar sendo usado), ficou corretamente com 0%.

Qualquer dúvida/discussão estou à disposição.
Lookout for the encoding. You must use UTF-8.