package com.gauravg.controller;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.LockSupport;
import java.util.concurrent.locks.ReentrantLock;
public class Main {
static Thread a=null;
static Thread b=null;
static Thread c = null;
public static void main(String[] args) {
a= new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
LockSupport.park();
System.out.println(Thread.currentThread().getName()+":B");
LockSupport.unpark(c);
}
}
});
c= new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
LockSupport.park();
System.out.println(Thread.currentThread().getName()+":C");
LockSupport.unpark(b);
}
}
});
b=new Thread((new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName()+":A");
LockSupport.unpark(a);
LockSupport.park();
}
}
}));
a.start();
b.start();
c.start();
}
}