Java - BloquingQueue no recibe mis datos

 
Vista:

BloquingQueue no recibe mis datos

Publicado por CarlosM (1 intervención) el 08/05/2013 20:49:43
Hola,

Tengo una duda y si alguien me puede dar una pista le estaría muy agradecido.

Resulta que quiero implementar un Productor- Consumidor.

Para ello empleo la clase BloquingQueue y lo que quieroes que me alamcene List<DatoAlmacenar>.

Mi definicion es la siguiente:

BlockingQueue <DatasBolcado> sharedQueue = new SynchronousQueue<DatasBolcado>();
boolean continuar = true;
private String rutaDef = null;

public HiloSecuencialBolcado(){}

public void addData(List<JPacket> lista ){
DatasBolcado data = new DatasBolcado(lista);
encolar(data);
}

private void encolar(DatasBolcado data ) {
sharedQueue.add(data);
}

/**
* Establece la ruta del fichero de la nueva captura y copia la lista que se le pasa como parametro.
*/
public void run() {
while( continuar ) {
try {
if( sharedQueue.size() > 0 ){
volcadoFichero(sharedQueue.take().getLista());
} else {
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

Pero cuando hago sharedQueue.add(data); o sharedQueue.put(data);
me aparece vacía. Es decir sharedQueue.size() > 0 siempre es false y no me entra en mi función de volcado

Muchas gracias y cualquier sugerencia es bien recibida.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder