| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/08/2007 11:48:36
|
analyser
JavaEvangelist
![[Avatar]](/images/avatar/d5e9d9e23447e1907c70ac5d9b29edcc.jpg)
Membro desde: 26/02/2007 09:31:49
Mensagens: 329
Offline
|
Olá amigos,
uma pequena pergunta, se eu realizar a minhas criações de objetos e variaveis apenas dentro dos metodos doPost e doGet e não na classe, estarei com minha servelts thread safe??
Ou seja quando trabalho com variaveis e objetos locais e não globais terei minha servelts thread safe??
Obrigado
|
Analyser |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/08/2007 12:04:40
|
kaique
GUJ Ranger
![[Avatar]](/images/avatar/60bb8062ea8e0c7ff17bb2e484cd223a.png)
Membro desde: 10/04/2006 07:06:06
Mensagens: 911
Localização: Fortaleza-CE
Offline
|
Sim. Me corrigam se eu estiver errado, mas quando você submete uma requisição ao servlet, uma nova thread será criada para tratar essa requisição. Dessa forma não existe como thread acessar/alterar valores encontrados no "heap" de outra thread.
[]'s.
|
/**
*
* Carlos Henrique
* carlosce@gmail.com
* kaiquece@hotmail.com
*
* Sun Certified Programmer for the Java 2 Platform, SE 5.0
* Sun Certified Web Component Developer for J2EE 1.4
* Sun Certified Bussiness Component Developer for J2EE 1.3
*
*/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/08/2007 12:17:37
|
analyser
JavaEvangelist
![[Avatar]](/images/avatar/d5e9d9e23447e1907c70ac5d9b29edcc.jpg)
Membro desde: 26/02/2007 09:31:49
Mensagens: 329
Offline
|
É que ouvi dizer tambem, que as variaveis e objetos globais podem ser subscritas pelas threads de cada requisição e as locais ficam livre dessas subscritass
É isso mesmo??
Abraços
|
Analyser |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/08/2007 12:37:09
|
marcelo_mococa
Virtual Machine Man
![[Avatar]](/images/avatar/90248d0a98105fa534cf2b0696ddd12f.jpg)
Membro desde: 03/03/2005 10:03:32
Mensagens: 622
Localização: São Paulo
Offline
|
Você até pode ter variáveis a nível de classe, mas o teu servlet deve extender SingleTheadModel. Mas pelo amor de Deus, nunca faça isso, rs.
É que ouvi dizer tambem, que as variaveis e objetos globais podem ser subscritas pelas threads de cada requisição e as locais ficam livre dessas subscritass
O que acontece é que o conteiner cria apenas uma instância do servlet e para cada requisição ele cria uma thread para te atender. Como é apenas um objeto, se uma thread alterar o valor de algum atributo do servlet, as outras threads também serão afetadas.
Resumindo:
Nunca crie variáveis de classe em um servlet.
Deixe tudo dentro dos métodos que tratam as requisições, dessa forma a VM cuidará do resto.
|
Marcelo Madeira - TCS
SCJP 1.5
SCWCD 1.4
blog
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/08/2007 12:45:57
|
ramilani12
GUJ Master
![[Avatar]](/images/avatar/b597460c506e8e35fb0cc1c1905dd3bc.png)
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
|
Basta ler o Java doc
http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServlet.html
|
my delicious| follow me| linkedin |
|
|
 |
|
|