Ficou confusa a explicação da aula 4 do curso de Threads 2. A meu ver criou-se uma classe dependendo da outra(DistribuidorTarefas e ServidorTarefas). Isso não resultaria em dependência cíclica??? E o tratamento para SocketException me pareceu mais uma gambiarra ou um bacalhau para uma má implementação. Deve ter uma solução mais elegante. Poderia ter uma maneira mais inteligente de expor o problema do acesso a uma mesma variável por mais de uma thread.