/**
* This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details.
*/
package p;
import java.util.Random;
import java.util.concurrent.locks.*;
import edu.illinois.keshmesh.annotations.EntryPoint;
public class LCK03J {
final Lock lock = new ReentrantLock();
final Condition condition = lock.newCondition();
@EntryPoint
public static void main(String args[]) {
new LCK03J().m();
}
private void m() {
synchronized (getLock()) {
System.out.println("replace by lock.lock()");
}
synchronized (condition) {
System.out.println("no replace");
}
synchronized (getLockOrCondition()) {
System.out.println("no replace");
}
}
private Lock getLock() {
return lock;
}
private Object getLockOrCondition() {
Lock lock = new ReentrantLock();
Condition condition = lock.newCondition();
Random random = new Random();
if (random.nextBoolean())
return lock;
else
return condition;
}
}