/** * Remove an object from the queue * (blocks until an element is available). */ public T dequeue() { return dequeue(-1); }
public void run() { while(true) { try { Object item = queue.dequeue(); // Object item = queue.take(); System.out.println("Processing: "+item); stat[1] = Math.max(queue.size(), stat[1]); if(queue.size()==0) { stat[0]++; if(queue.size()==0 && stat[2]!=0) { System.out.println("Queue is now empty."); break; } } } catch(Exception e) { StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw)); throw new RuntimeException(sw.toString()); } } } }).start();