| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 15:31:29
|
brenojava123
HelloWorld
![[Avatar]](/images/avatar/9d0ee86a965c5a46ea93f9935e41b67c.png)
Membro desde: 14/01/2011 13:10:30
Mensagens: 14
Localização: São Paulo
Offline
|
Galera, tipo eu sei que eu não tenho como determinar qual a ordem a ser executada de uma Thread, mas eu tenho 2 threads e queria saber como eu posso dar prioridade pra uma thread(isso eu sei que da, eu sei que não é garantia que sera executada antes, mas como eu fasso para setar a prioridade), e outra eu tenho 2 Threads se eu colocar uma pra durmir a outra sera executada certo ?
tipo:
|
----------------------------------------------
Breno
Estudante de Ciência da Computação |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 15:40:56
|
ViniMunhoz
Thread.start()
![[Avatar]](/images/avatar/1fdfb6f89419a6d2e520339bfea2d0bb.jpg)
Membro desde: 24/08/2008 17:21:09
Mensagens: 29
Offline
|
O método é o setPriority()
Ele recebe um inteiro com a prioridade.
Tem 3 constantes na classe Thread MIN_PRIORITY, NORM_PRIORITY e MAX_PRIORITY...
O valor tem que estar entre o minimo e o maximo.
Colocar a Thread para dormir não garante necessariamente que a outra será executada mas existe essa possibilidade.
Abraço
|
Veni, vidi, vici |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/01/2011 16:56:49
|
jose.jesus
Entusiasta Java
![[Avatar]](/images/avatar/d9162184f1d5f6379663b32852fd6702.jpg)
Membro desde: 19/10/2010 11:06:09
Mensagens: 20
Offline
|
Outra alternativa que você pode usar é o método join e obrigar q uma thread finalize antes da outra.
Abraços
|
Bacharel em Ciência da Computação, Graduado pela Universidade Estadual do Sudoeste da Bahia.
OCPJP - Oracle Certified Professional, Java Programmer.
OCPWCD - Oracle Certified Professional, Java EE 5 Web Component Developer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 08:07:48
|
ViniMunhoz
Thread.start()
![[Avatar]](/images/avatar/1fdfb6f89419a6d2e520339bfea2d0bb.jpg)
Membro desde: 24/08/2008 17:21:09
Mensagens: 29
Offline
|
Acredito que no caso dele um yield funcione melhor que o join para o que ele quer...
|
Veni, vidi, vici |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2011 08:34:55
|
Adriano Almeida
JavaEvangelist
![[Avatar]](/images/avatar/080eb9c2c128e1337fcc84d8680f404c.jpg)
Membro desde: 13/09/2006 15:29:34
Mensagens: 386
Offline
|
Oi Breno,
tem um erro grave no teu código. O método sleep é estático. A chamada ideal seria então:
Além disso, o método sleep executa sobre a Thread atual. No caso, como a chamada está no método main, a Thread que vc está interrompendo é a main (lembre-se, o sleep é estático... entao, tanto faz vc chamar ele em t1 ou t2, quem vai dormir ali vai ser o main). Se vc quer colocar t1 para dormir, é lá no método run daquele objeto p1 que vc tem que colocar uma chamada pra Thread.sleep.
Outra coisa, cuidado com a afirmação de que com Threads a ordem da execução nunca é possível de ser determinada. Existem casos em que é possível sim, mas o melhor mesmo é quando vc nao precisa de sleeps e sincronizacao (mas nem sempre eh possivel).
[]'s
|
Twitter: @adrianoalmeida7
http://ahalmeida.com
http://blog.caelum.com.br

|
|
|
 |
|
|