class Range implements Runnable { int low, high; IteratorHelper ih = new IteratorHelper(this); public Range (int low, int high) { this.low = low; this.high = high; //Start the thread to yield values ih.start(); } public boolean hasNext() { //Check if doneflag has not been set in the IteratorHelper return !(ih.done()); } public int next() { //Get the next value from IteratorHelper return ih.get(); } public void run () { for (int i = low; i