001package horstmann.ch09_queue3;
002/**
003   An action that repeatedly removes a greeting from a queue.
004 */
005public class Consumer implements Runnable
006{
007        /**
008      Constructs the consumer object.
009      @param aQueue the queue from which to retrieve greetings
010      @param count the number of greetings to consume
011         */
012        public Consumer(BoundedQueue<String> aQueue, int count)
013        {
014                queue = aQueue;
015                greetingCount = count;
016        }
017
018        public void run()
019        {
020                try
021                {
022                        int i = 1;
023                        while (i <= greetingCount)
024                        {
025                                String greeting = queue.remove();
026                                System.out.println(greeting);
027                                i++;
028                                Thread.sleep((int) (Math.random() * DELAY));
029                        }
030                }
031                catch (InterruptedException exception)
032                {
033                }
034        }
035
036        private BoundedQueue<String> queue;
037        private int greetingCount;
038
039        private static final int DELAY = 10;
040}