quando dois servlets são carregados e eles instanciam objetos de uma mesma classe, esse objeto é único ou existirão várias copias dele na memória?
Varios, a menos que vc use SingleThreadModel, o que eh extremamente irrecomendavel.
da uma olhada aqui:
Caro CV,
se vc não utilizar SingleThreadModel, o q fará para o seu Servlet implemetar seguranças no dados e virar ThreadSafe ?
SinglheTheadModel permite UM UNICO acesso por vez, e nao varios simultaneos. Se voce desejar acesso unico a determinado objeto, sincronize ele ou parte dele ( usando synchronized ).
Varios objetos sao instanciados como em qualquer aplicacao, ou seja, cada thread tem a sua copia local ( desde que o objeto nao seja static, claro ).
Rafael
Perder alguns minutos pensando direito na sincronizacao deles, e manter os dados realmente sensiveis em ThreadLocals?
Perder alguns minutos pensando direito na sincronizacao deles, e manter os dados realmente sensiveis em ThreadLocals? :D[/quote]
Muito, mas muito cuidado mesmo quando for usar ThreadLocals em ambiente j2ee. Nunca deixe de limpar todas suas ThreadLocals antes de sair do request.
Eu poderia listar uma duzia de problemas derivados de usar essas belezinhas com j2ee…
Como regra geral ThreadLocals e Thread pools não se dão muito bem, principalmente quando vc não tem controle do pool.
é isso ai…
mas acho q essa questão pode ser solucionada qdo temos hardware. No meu caso, tenho um cliente grande (instituição financeira) onde por sugestao da propria Sun, temos q utilizar o SingleThreadModel, para não temos nenhum problema. O desempenho cai, mas o ambiente de produção é extremamente ignorante. Servidores Sun E10000 (em cluster) com o maximo de memoria permitido, o maximo de processadores permitidos.
Andrew, nao ponha no hardware aquilo que um mero software bem feitinho resolve
Alias, se vcs tem grana pra usar um puta hardware desses, pq vcs ainda tao usando servlets?! Um framework web que ja cuidasse dessa meio-de-campo pra vcs resolveria bem melhor
[quote=“cv”]Andrew, nao ponha no hardware aquilo que um mero software bem feitinho resolve
Alias, se vcs tem grana pra usar um puta hardware desses, pq vcs ainda tao usando servlets?! Um framework web que ja cuidasse dessa meio-de-campo pra vcs resolveria bem melhor ;)[/quote]
Pra usar webwork não precisa ter grana.
E com ele vc já resolve o problema de concorrencia.
Me expressei mal. Na verdade o lance eh ter “tempo” pra desenvolver