Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Método inacessível dentro do loop For

Gostaria de saber porque dentro do loop For que inicia os consumidores eu não consigo usar o método size() da BlockingQueue. Código:

private void iniciarConsumidores() {
        for (int i = 0; i < filaComandos.size(); i++) {
            TarefaConsumir consumidor = new TarefaConsumir(filaComandos);
            threadPool.execute(consumidor);
        }
    }

Ou até mesmo colocando o método dentro de uma variável de referência... mesmo assim ele não reconhece o tamanho. Por que somente posso colocar o valor como inteiro na raça ou em uma variável?

private void iniciarConsumidores() {
        int tamanhoFila = 2;
        for (int i = 0; i < tamanhoFila; i++) {
            TarefaConsumir consumidor = new TarefaConsumir(filaComandos);
            threadPool.execute(consumidor);
        }
    }
2 respostas
solução!

Oi Maycon

O método size () de ArrayBlockingQueue retorna o número de elementos que ArrayBlockingQueue contém. Quando a fila está vazia, size() retorna 0 e quando a fila está cheia, size() retorna a capacidade da fila.

Entendi... ela não havia sido inicializada naquele momento do código