Package JACE.tests.Concurrency.Condition

Source Code of JACE.tests.Concurrency.Condition.QueueTest

//File: QueueTest.java
//Seth Widoff, 8/8/96
//This class is a test method for the Producer and Consumer classes.
//The main method takes as arguments the number of producers, the
//number of consumers and the number of elements in the queue. It then
//spawn the specified threads and starts them.

package JACE.tests.Concurrency.Condition;

import JACE.ASX.TimeValue;

public class QueueTest
{
  public static void main(String[] args)
  {
    if (args.length < 5)
      {
  System.out.println("Usage: java QueueTest <# producers> <# consumers> " +
         "<# elements> <#iterations> <#timeout secs> <#timeout nano secs>");
  System.exit(1);
      }
   
    int num_producers = Integer.parseInt(args[0]),
      num_consumers = Integer.parseInt(args[1]),
      num_elements = Integer.parseInt(args[2]),
      num_iterations = Integer.parseInt(args[3]),
      num_timeout_secs = Integer.parseInt(args[4]),
      num_timeout_nano_secs = Integer.parseInt(args[5]);
   
    if (num_elements < 1
  || num_consumers < 1
  || num_producers < 1)
      {
  System.out.println("All the parameters must be larger than zero.");
  System.exit(1);
      }
   
    SimpleMessageQueue queue = new SimpleMessageQueue(num_elements);
    Consumer[] consumers = new Consumer[num_consumers];
    Producer[] producers = new Producer[num_producers];
    JoinableThreadGroup thread_group = new JoinableThreadGroup("Producer Consumer");

    for (int i = 0; i < num_producers; i++)
      {
  producers[i] = new Producer("Number " + (i + 1),
            queue,
            num_iterations,
            new TimeValue (num_timeout_secs, num_timeout_nano_secs));
  new Thread(thread_group, producers[i]).start();
      }

    for (int i = 0; i < num_consumers; i++)
      {
  consumers[i] = new Consumer("Number " + (i + 1), queue, num_iterations, new TimeValue (num_timeout_secs, num_timeout_nano_secs));
  new Thread(thread_group, consumers[i]).start();
      }

    try
      {
  thread_group.join();
      }
    catch(InterruptedException excp)
      {
  System.out.println("QueueTest::main");
  System.out.println(excp);
      }
  }
}
TOP

Related Classes of JACE.tests.Concurrency.Condition.QueueTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.