import java.util.Random;

/**
 * BufferTest creates a buffer, some producers and consumers and runs them 
 * concurrently.
 *
 * @version     1.1    February 7, 2000
 * @author      Franck van Breugel
 * @see Buffer
 * @see Producer
 * @see Consumer
 */
public class BufferTest 
{

    /** Maximal number of producers/consumers. */
    public final static int MAX = 5;

    public static void main(String[] args) 
    {
        Buffer buffer = new Buffer();

        Random generator = new Random();

        final int NUMBER_OF_CONSUMERS = generator.nextInt(MAX);
        Thread[] consumer = new Thread[NUMBER_OF_CONSUMERS];
        for (int i = 0; i < NUMBER_OF_CONSUMERS; i++)
	{
	    consumer[i] = new Consumer(buffer);
        }

        final int NUMBER_OF_PRODUCERS = generator.nextInt(MAX);
        Thread[] producer = new Thread[NUMBER_OF_PRODUCERS];
        for (int i = 0; i < NUMBER_OF_PRODUCERS; i++)
	{        
            producer[i] = new Producer(buffer);
        }

        for (int i = 0; i < NUMBER_OF_CONSUMERS; i++)
	{
	    consumer[i].start();
        }

        for (int i = 0; i < NUMBER_OF_PRODUCERS; i++)
        {
	    producer[i].start();
        }
    }
}

