当前位置: 首页>>代码示例>>Java>>正文


Java Condition.awaitNanos方法代码示例

本文整理汇总了Java中java.util.concurrent.locks.Condition.awaitNanos方法的典型用法代码示例。如果您正苦于以下问题:Java Condition.awaitNanos方法的具体用法?Java Condition.awaitNanos怎么用?Java Condition.awaitNanos使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.util.concurrent.locks.Condition的用法示例。


在下文中一共展示了Condition.awaitNanos方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: await

import java.util.concurrent.locks.Condition; //导入方法依赖的package包/类
/**
 * Awaits condition "indefinitely" using the specified AwaitMethod.
 */
void await(Condition c, AwaitMethod awaitMethod)
        throws InterruptedException {
    long timeoutMillis = 2 * LONG_DELAY_MS;
    switch (awaitMethod) {
    case await:
        c.await();
        break;
    case awaitTimed:
        assertTrue(c.await(timeoutMillis, MILLISECONDS));
        break;
    case awaitNanos:
        long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis);
        long nanosRemaining = c.awaitNanos(timeoutNanos);
        assertTrue(nanosRemaining > timeoutNanos / 2);
        assertTrue(nanosRemaining <= timeoutNanos);
        break;
    case awaitUntil:
        assertTrue(c.awaitUntil(delayedDate(timeoutMillis)));
        break;
    default:
        throw new AssertionError();
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:27,代码来源:ReentrantReadWriteLockTest.java

示例2: testAwaitNanos_Timeout

import java.util.concurrent.locks.Condition; //导入方法依赖的package包/类
public void testAwaitNanos_Timeout(boolean fair) {
    final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(fair);
    final Condition c = lock.writeLock().newCondition();
    final long timeoutMillis = timeoutMillis();
    lock.writeLock().lock();
    final long startTime = System.nanoTime();
    final long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis);
    try {
        long nanosRemaining = c.awaitNanos(timeoutNanos);
        assertTrue(nanosRemaining <= 0);
    } catch (InterruptedException fail) { threadUnexpectedException(fail); }
    assertTrue(millisElapsedSince(startTime) >= timeoutMillis);
    lock.writeLock().unlock();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:15,代码来源:ReentrantReadWriteLockTest.java

示例3: testAwaitNanos_Timeout

import java.util.concurrent.locks.Condition; //导入方法依赖的package包/类
public void testAwaitNanos_Timeout(boolean fair) {
    final ReentrantLock lock = new ReentrantLock(fair);
    final Condition c = lock.newCondition();
    final long timeoutMillis = timeoutMillis();
    final long timeoutNanos = MILLISECONDS.toNanos(timeoutMillis);
    lock.lock();
    final long startTime = System.nanoTime();
    try {
        long nanosRemaining = c.awaitNanos(timeoutNanos);
        assertTrue(nanosRemaining <= 0);
    } catch (InterruptedException fail) { threadUnexpectedException(fail); }
    assertTrue(millisElapsedSince(startTime) >= timeoutMillis);
    lock.unlock();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:15,代码来源:ReentrantLockTest.java


注:本文中的java.util.concurrent.locks.Condition.awaitNanos方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。