类com.google.common.util.concurrent.Monitor源码实例Demo

下面列出了怎么用com.google.common.util.concurrent.Monitor的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: tutorials   文件: MonitorUnitTest.java
@Test
public void whenGaurdConditionIsTrue_IsSuccessful() {
    Monitor monitor = new Monitor();
    boolean enteredInCriticalSection = false;

    Monitor.Guard gaurdCondition = monitor.newGuard(this::returnTrue);

    if (monitor.enterIf(gaurdCondition)) {
        try {
            System.out.println("Entered in critical section");
            enteredInCriticalSection = true;
        } finally {
            monitor.leave();
        }
    }

    Assert.assertTrue(enteredInCriticalSection);

}
 
源代码2 项目: tutorials   文件: MonitorUnitTest.java
@Test
public void whenGaurdConditionIsFalse_IsSuccessful() {
    Monitor monitor = new Monitor();
    boolean enteredInCriticalSection = false;

    Monitor.Guard gaurdCondition = monitor.newGuard(this::returnFalse);

    if (monitor.enterIf(gaurdCondition)) {
        try {
            System.out.println("Entered in critical section");
            enteredInCriticalSection = true;
        } finally {
            monitor.leave();
        }
    }

    Assert.assertFalse(enteredInCriticalSection);
}
 
源代码3 项目: tutorials   文件: MonitorExample.java
public void addToCourse(String item) throws InterruptedException {
    Monitor.Guard studentsBelowCapacity = monitor.newGuard(this::isStudentsCapacityUptoLimit);
    monitor.enterWhen(studentsBelowCapacity);
    try {
        students.add(item);
    } finally {
        monitor.leave();
    }
}
 
 类方法
 同包方法