Ajuda  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

Gostaria de saber se alguém conhece algum objeto ou alguma API que ajude para desenvolver uma parte de um sistema.
A regra é a seguinte:

- Tenho que ter um objeto aonde ficariam guardados dados do banco, eu estava pensando em um ArrayList, sendo que este objeto iria ser acessado por várias threads, que iram pegar os dados e enviar os mesmo por socket, recebendo a resposta do servidor este dado, que se encontrava dentro de um objeto( um list ), teria que ser removido. E as threads não podem pegar dados iguais.


www.bau-de-dev.com
abelgomes
Virtual Machine Man
[Avatar]

Membro desde: 12/06/2008 17:08:23
Mensagens: 706
Localização: Manaus-AM
Offline

nao entendi muito bem o que vc quer....mas acho que um map daria pra fazer isso...

...the only easy day was yesterday...
[Email] [MSN]
davidtiagoconceicao
Virtual Machine Man
[Avatar]

Membro desde: 17/10/2008 07:28:29
Mensagens: 567
Localização: Blumenau - SC
Offline

Pelo que eu entendi, cada thread vai pegar a determinada informação e enviar para o servidor.
Acho que uma fila sincronizada seria interessante para esse caso.

Bacharel em Ciência da Computação/FURB
SCJP 6
Android Developer
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

Vou tentar explicar melhor.
Faço um select no banco, tenho várias linhas retornadas, essas linhas ficam em um objeto, como um list ou um map, este objeto vai ser acessado por várias threads ao mesmo tempo, eu queria q este objeto me garantisse que não iria mandar para as threads linhas repetidas e que não pudesse passar de um limite de linhas pré-definidas anteriormente.
E quando as threads acabarem de processsar os dados de uma determinada linha eu possa matar ele do list ou do map.
Ficou melhor?

www.bau-de-dev.com
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline


Pelo que eu entendi, cada thread vai pegar a determinada informação e enviar para o servidor.
Acho que uma fila sincronizada seria interessante para esse caso.



Vc está falando do ArrayBlockingQueue? Mas vc não acha que iria ficar meio lento? E tem como tirar ele da lista só quando ele for processado?

www.bau-de-dev.com
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Você precisa ter uma classe que seja um "porteiro" para esse list, map, queue, priority queue, ou seja lá o que for.
Esse "porteiro" deve dispor de um método para obter o próximo dado, e um método para eliminar um determinado dado que já foi processado.

De qualquer maneira, é sempre bom dar uma olhada nesta página:

http://java.sun.com/javase/6/docs/api/java/util/concurrent/package-summary.html

e ver qual das classes atende a seus requisitos.
[WWW]
abelgomes
Virtual Machine Man
[Avatar]

Membro desde: 12/06/2008 17:08:23
Mensagens: 706
Localização: Manaus-AM
Offline

essa consulta do banco retorna dados de um só objeto?

se for de um só objeto é melhor usar List se nao usa map!

limite de linhas pré-definidas?como assim? é um tamanho da Lista?

o lance de tirar a linha do list quando terminar...blz...mas vc poderia retirar assim que a thread pega-la para processar vc retira da lista....

...the only easy day was yesterday...
[Email] [MSN]
Jedi_FeniX
Virtual Machine Man
[Avatar]

Membro desde: 26/04/2007 14:32:30
Mensagens: 586
Offline

Mas então este "proteiro" teria que ser feito na "mão".

www.bau-de-dev.com
abelgomes
Virtual Machine Man
[Avatar]

Membro desde: 12/06/2008 17:08:23
Mensagens: 706
Localização: Manaus-AM
Offline

sim...acho que seria um metodo sychronized....

...the only easy day was yesterday...
[Email] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team