/** * Copyright 2013 Marin Solutions */ package com.captaindebug.producerconsumer.problem; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; /** * Monitor the size of the queue * * @author Roger * */ public class OrderQueueMonitor implements Runnable { private final BlockingQueue<Order> orderQueue; public OrderQueueMonitor(BlockingQueue<Order> orderQueue) { this.orderQueue = orderQueue; } public void start() { Thread thread = new Thread(this, "Order Queue Monitor"); thread.start(); } @Override public void run() { while (true) { try { TimeUnit.SECONDS.sleep(2); int size = orderQueue.size(); System.out.println("Queue size is:" + size); } catch (InterruptedException e) { e.printStackTrace(); } } } }