Olá estou com um problema que nao consigo resolver. Estou com um problema em uma thread que possui uma lista bloqueante:
public void run() {
while (true) {
try {
j = List1.take();
if (!List2.isEmpty() && j != null) {
if (nextWorker >= List2.size()) {
nextWorker = 0;
}
......
}
A List1 é uma BLoquinkQueue e a List2 é uma LinkedList. Utilizando dessa maneira tudo funciona perfeitamente, mas estou precisando transforma a List2 em uma LinkedHashMap, aí que ocorre o problema:
public void run() {
while (true) {
try {
j = List1.take();
if (!List2.isEmpty() && j != null) {
Iterator<String> iterator = List2.keySet().iterator();
while (iterator.hasNext()) {
String chave = iterator.next();
worker =List2.get(chave);
....
}
No codigo acima alterei a List2 para LinkedHashMap mas o problema esta nesse segundo while ele fica executando eternamente. ele deveria executar da mesma que o primeiro codigo executa … mas nao estou encontrando uma solução, ou seja, da mesma forma com aquele nextWorker++. Alguem poderia me auxiliar
OBRIGADO