/* codedaily.in - PrintSequence*/
class PrintSequenceRunnable
implements Runnable{
public int PRINT_NUMBERS_UPTO=10;
static int number=1;
int remainder;
PrintSequenceRunnable(int remainder)
{
this.remainder=remainder;
}
@Override
public void run() {
while (number < PRINT_NUMBERS_UPTO-1) {
synchronized (lock) {
while (number % 3 != remainder) { // wait for numbers other than remainder
try {
lock.wait();
e.printStackTrace();
}
}
System.
out.
println(Thread.
currentThread().
getName() + " " + number
); number++;
lock.notifyAll();
}
}
}
}
class PrintThreadsSequentiallyMain {
public static void main
(String[] args
) {
PrintSequenceRunnable runnable1=new PrintSequenceRunnable(1);
PrintSequenceRunnable runnable2=new PrintSequenceRunnable(2);
PrintSequenceRunnable runnable3=new PrintSequenceRunnable(0);
t1.start();
t2.start();
t3.start();
}
}