public void internalMultipleConsumers() throws Throwable { for (int i = 0; i < numberOfProducers; i++) { producers.add(new TestProducer()); } for (int i = 0; i < numberOfConsumers; i++) { consumers.add(new TestConsumer()); } for (Tester test : producers) { test.start(); } Thread.sleep(2000); for (Tester test : consumers) { test.start(); } for (Tester test : consumers) { test.join(); } runningProducer = false; for (Tester test : producers) { test.join(); } for (Throwable e : exceptions) { throw e; } }