Amigos
Tenho uma aplicação que executa muitas threads. Cada uma dessas threads acessa um buffer de dados global na aplicação e retira uma informação deste buffer.
o buffer é um HashSet, o acesso aos dados do buffer é synchronized. Eu pude perceber 2 coisas durante o teste de stress:
1 - algumas threads deixam de ser executadas por algum motivo que não consigo descobrir, pois o getMessage() so me retorna NULL
2 - A maquina virtual acaba não executando todas as threads, no meu teste atual com 30 threads, pelo menos 5 ficaram em starvation, eu sei que as threads nao morreram, pq mandei elas sinalizarem com mensagem antes que isso acontecesse
ao que pude reparar, a JVM não trabalha com muitas threads ou isso é limitação de hardware ? pois a aplicação esta rodando em uma a´quina com 2 Gigas de RAm e apenas 1 núcleo
o q vcs acham ??