| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2008 17:52:42
|
latino
Smalltalk
Membro desde: 30/05/2008 17:49:00
Mensagens: 2
Offline
|
Então pessoal tenho q criar uma classe em java que permita paralelizar uma pesquisa em um array de inteiros. Isso deve ser feito com o seguinte método: public static int parallelSearck(int x, int[] A, int numThreads). Este método cria tantas threads quanto especificadas em numThreads, divide o array A em muitas partes e cada thread parte do array para procurar sequencialmente pelo valor x. Se uma thread encontrar o valor x, então é retornado o índice i (A[i] = x), ao contrário - 1.
O meu problema é que não sei nem por onde começar.
Alguém tem alguma diga de como faço essa implementação.. vlw galera!!!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2008 18:12:03
|
FilhoDoRei
JavaTeenager
![[Avatar]](/images/avatar/d9106553cc5dcab924a87b57eb707fdd.jpg)
Membro desde: 13/03/2008 19:52:45
Mensagens: 199
Localização: Taguatinga
Offline
|
Voce pode começar lendo esse artigo:
http://www.guj.com.br/java.tutorial.artigo.43.1.guj
vlws
|
"Sei que voce não entende
A profundidade do Meu amor
Como morri na cruz pelos teus pecados
E sei que você não compreende
O quanto te dei
Mas prometo, faria tudo isso novamente".
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2008 00:04:02
|
rflprp
GUJ Ranger
Membro desde: 27/04/2005 18:52:49
Mensagens: 822
Offline
|
Tava precisando mesmo tirar um pouco da ferrugem em threads, segue um código que fiz aqui pra exemplificar o funcionamento.
[]´s
This message was edited 1 time. Last update was at 31/05/2008 00:11:23
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/05/2008 00:25:55
|
Bruno Laturner
GUJ Expert
![[Avatar]](/images/avatar/5800ccd9514fd789d08e5831951aa6bc.jpg)
Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline
|
Fiquei pensando em assuntos extras para esse problema.
Como que eu faria um controlador p/ essas threads que recebesse, caso alguma tenha sucesso encontrar, a posição onde está o item procurado, que também parasse as outras threads quando recebesse esse valor, ou que percebesse que todas as threads pararam sem encontrar uma resposta, porém sem ficar checando toda hora se elas estão vivas ou não, algo como ela ficar de prontidão p/ receber valores, mas sem comer recursos de cpu. Um sistema baseado em listeners e callbacks.
Outra pergunta, como faço p/ reusar uma thread que já terminou seu processamento, p/, por exemplo, dar outro intervalo de pesquisa p/ ela procurar. O objetivo seria criar um número fixo de threads, umas 4, para checarem 10 intervalos, mas sem dar new para criar novas threads.
|
A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/06/2008 09:05:49
|
latino
Smalltalk
Membro desde: 30/05/2008 17:49:00
Mensagens: 2
Offline
|
Flw Rafael fui de grã ajuda.... t mais
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/06/2008 11:51:42
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
Bruno Laturner wrote:Fiquei pensando em assuntos extras para esse problema.
Como que eu faria um controlador p/ essas threads que recebesse, caso alguma tenha sucesso encontrar, a posição onde está o item procurado, que também parasse as outras threads quando recebesse esse valor, ou que percebesse que todas as threads pararam sem encontrar uma resposta, porém sem ficar checando toda hora se elas estão vivas ou não, algo como ela ficar de prontidão p/ receber valores, mas sem comer recursos de cpu. Um sistema baseado em listeners e callbacks.
Dê uma olhada em Executer , ExecuterService, Future e Callable no pacote java.util.concurrent
Outra pergunta, como faço p/ reusar uma thread que já terminou seu processamento, p/, por exemplo, dar outro intervalo de pesquisa p/ ela procurar. O objetivo seria criar um número fixo de threads, umas 4, para checarem 10 intervalos, mas sem dar new para criar novas threads.
Vc não pode reutilizar threads que já terminaram. Simplesmente não pode.
O truque é manter um Thread , ou mais, ativas num loop infinito e passar a elas Runnables ou Collables para serem executados.
Quanto não há nada para correr a Thread simplesmente entra em espera ( sleep). Este tipo de mecanismo é simples de utilizar com os Executer disponiveis principallemnte ThreadPoolExecuterService
This message was edited 1 time. Last update was at 02/06/2008 11:53:44
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/06/2008 12:01:07
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline
|
sergiotaborda wrote:Dê uma olhada em Executer , ExecuterService, Future e Callable no pacote java.util.concurrent
Postei um exemplo sobre isso aqui: http://www.guj.com.br/posts/list/50321.java#264645
This message was edited 1 time. Last update was at 02/06/2008 12:01:31
|
@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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2009 12:06:22
|
Jaqueline.
Smalltalk
Membro desde: 20/07/2009 12:01:02
Mensagens: 1
Offline
|
latino wrote:Então pessoal tenho q criar uma classe em java que permita paralelizar uma pesquisa em um array de inteiros. Isso deve ser feito com o seguinte método: public static int parallelSearck(int x, int[] A, int numThreads). Este método cria tantas threads quanto especificadas em numThreads, divide o array A em muitas partes e cada thread parte do array para procurar sequencialmente pelo valor x. Se uma thread encontrar o valor x, então é retornado o índice i (A[i] = x), ao contrário - 1.
O meu problema é que não sei nem por onde começar.
Alguém tem alguma diga de como faço essa implementação.. vlw galera!!!
olha num tenho nenhuma ideia por enquanto .... qndo eu conseguir algma ideia te passso. ok ?
uma perguntinha se vc tiver orkut me passa teu i-mail por favor... te adoro xauu
|
|
|
 |
|
|