public void run() { try { while (!Thread.interrupted()) { for (int i = 0; i < ExchangerDemo.size; i++) holder.add(generator.next()); // Exchange full for empty: holder = exchanger.exchange(holder); } } catch (InterruptedException e) { // OK to terminate this way. } }
// Generator version: public static <T> void fill(Addable<T> addable, Generator<T> generator, int size) { for (int i = 0; i < size; i++) addable.add(generator.next()); }
public static <T> Collection<T> fill(Collection<T> coll, Generator<T> gen, int n) { for (int i = 0; i < n; i++) coll.add(gen.next()); return coll; }
// Fill an array using a generator: public static void fill(Collection c, Generator gen, int count) { for (int i = 0; i < count; i++) c.add(gen.next()); }