Problemas com mult-Thread

2 respostas
P

Galera, estou com o grande problema! Estou desenvolvendo um sistema de RFID, a antena é chinesa, logo não me ofereceu muita ajuda. A antena usa a rede para se comunicar, então estou usando socket. O problema é que na minha app usa duas Threads, uma que le o Buffer da antena e outra que eu faço as leitura, escrita etc na TAG. No projeto eu tenho um portal composto por duas antenas de RFID, cada uma com duas threads, logo 4 threads. Estou armazenando os dados em List e em hashmap (ip é a chave). Nesse portal eu sei se o produto esta saindo ou entrando, se passa da antena 1 para 2 ou se passa da 2 para 1. O problema que ela esta dando .ConcurrentModificationException, estava usando foreach, mas não posso modificar uma lista dentro de uma iteração, pensei em usar iterator mas mesmo assim o problema persiste. O problema que eu tenho que alimentar uma lista e depois verificar se tem essa tag na lista e depois tenho que remove-la.

java.util.ConcurrentModificationException  
    at java.util.AbstractList$Itr.checkForComodification(Unknown Source)  
    at java.util.AbstractList$Itr.next(Unknown Source)  
    at td.gui.MapHolder.processAI(MapHolder.java:27)  
    at td.gui.MapView.processPiecesAI(MapView.java:38)  
    at td.gui.TDGame.processLogics(TDGame.java:64)  
    at jgf.core.MainLoop.skipFramesInExcessTime(MainLoop.java:204)  
    at jgf.core.MainLoop.run(MainLoop.java:156)  
    at java.lang.Thread.run(Unknown Source)

Alguma idéia?

Valeu

2 Respostas

E

http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ConcurrentHashMap.html

P

Problema resolvido usando CopyOnWriteArrayList.

Valeu :slight_smile: :smiley:

Criado 25 de setembro de 2012
Ultima resposta 25 de set. de 2012
Respostas 2
Participantes 2