duvida thread [RESOLVIDO]  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
CarlosEduardoDantas
GUJ Master
[Avatar]

Membro desde: 13/11/2006 15:26:38
Mensagens: 1089
Offline




este codigo lança uma exceção IllegalMonitorStateException ...

como que eu consertaria esse codigo para nao gerar essa exceção?

This message was edited 1 time. Last update was at 29/10/2007 12:07:59


'Nós somos o que repetidamente fazemos. Excelência, então, não é um ato, mas um hábito'.

Aristóteles.

carloseduardoxp
[MSN] [ICQ]
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

observe que os objetos são diferentes na sincronização.. um é da instancia e outro é static.. um nao bloqueia o outro..
Bom essa questao é do whizlabs eu errei.. mais a melhor pessoa que eu conheço aqui no forum que daria uma boa aula disso ai é o vinny, hehe.. bora ver se ele posta.. ai.. quero aprender

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
CarlosEduardoDantas
GUJ Master
[Avatar]

Membro desde: 13/11/2006 15:26:38
Mensagens: 1089
Offline

LPJava wrote:observe que os objetos são diferentes na sincronização.. um é da instancia e outro é static.. um nao bloqueia o outro..
Bom essa questao é do whizlabs eu errei.. mais a melhor pessoa que eu conheço aqui no forum que daria uma boa aula disso ai é o vinny, hehe.. bora ver se ele posta.. ai.. quero aprender


obrigado, mas essa resposta sua o whizlabs ja respondeu pra mim.. queria saber como corrigir... e outra coisa.. não tem nada a ver ser static ou não.. .se tu tirar o static, e criar a instancia no main(), o resultado é o mesmo.

mas d qq forma obrigado

This message was edited 2 times. Last update was at 29/10/2007 09:03:09


'Nós somos o que repetidamente fazemos. Excelência, então, não é um ato, mas um hábito'.

Aristóteles.

carloseduardoxp
[MSN] [ICQ]
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

é rpz.. realmente nao. eu errei essa questao.. sei que os objetos de bloqueio sao diferentes.. fiquei de ler hj a explicacao do whizlabs..

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
RafaelVS
JavaEvangelist
[Avatar]

Membro desde: 13/12/2006 09:50:16
Mensagens: 405
Localização: Recife - PE
Offline



Teoria básica antes: Para chamar wait() ou notify() em um objeto é preciso obter o bloqueio do mesmo (através do uso de synchronized).

No código acima, você obteu o bloqueio do objeto sa = new String("Not Done");

Mas está tentando chamar notify() no objeto criado dentro do bloco... sa = new String("done"); (o qual você não possui o lock) e, por isso, está sendo lançada IllegalMonitorStateException.

Provavelmente, pra evitar essa exceção, basta sincronizar o segundo objeto criado dentro do bloco synchronized (ou apenas comentar a linha de criação).



[]'s

- Mestrando em Engenharia de Software no CIn/UFPE;
- Pós-Graduado em Engenharia de Software na POLI/UPE;
- Bacharel em Ciência da Computação na UNICAP (Universidade Católica de Pernambuco);
- Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (score 95%);
- Sun Certified Web Components Developer for J2EE 1.4 Platform (score 89%)
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

hum foi o que falei.. antes.. pegadinha.. ai.. qdo eu respondi ela pela primeira vez.. nao me liguei e marquei errado.. e depois que aprendi e lembrei da regra.. boa RAfafel

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
CarlosEduardoDantas
GUJ Master
[Avatar]

Membro desde: 13/11/2006 15:26:38
Mensagens: 1089
Offline

muito obrigado rafael..

tirou todas as minhas duvidas.. obrigado

'Nós somos o que repetidamente fazemos. Excelência, então, não é um ato, mas um hábito'.

Aristóteles.

carloseduardoxp
[MSN] [ICQ]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

LPJava wrote:observe que os objetos são diferentes na sincronização.. um é da instancia e outro é static.. um nao bloqueia o outro..
Bom essa questao é do whizlabs eu errei.. mais a melhor pessoa que eu conheço aqui no forum que daria uma boa aula disso ai é o vinny, hehe.. bora ver se ele posta.. ai.. quero aprender


Não vi tópico a tempo. Mas esse, na minha opinião, é mais um exemplo de como não se trabalhar com threads.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team