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


Java Phaser.getPhase方法代码示例

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


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

示例1: checkTerminated

import java.util.concurrent.Phaser; //导入方法依赖的package包/类
private static void checkTerminated(final Phaser phaser) {
    check(phaser.isTerminated());
    int unarriverParties = phaser.getUnarrivedParties();
    int registeredParties = phaser.getRegisteredParties();
    int phase = phaser.getPhase();
    check(phase < 0);
    equal(phase, phaser.arrive());
    equal(phase, phaser.arriveAndDeregister());
    equal(phase, phaser.arriveAndAwaitAdvance());
    equal(phase, phaser.bulkRegister(10));
    equal(phase, phaser.register());
    try {
        equal(phase, phaser.awaitAdvanceInterruptibly(0));
        equal(phase, phaser.awaitAdvanceInterruptibly(0, 10, SECONDS));
    } catch (Exception ie) {
        unexpected(ie);
    }
    equal(phaser.getUnarrivedParties(), unarriverParties);
    equal(phaser.getRegisteredParties(), registeredParties);
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:21,代码来源:Basic.java

示例2: checkTerminated

import java.util.concurrent.Phaser; //导入方法依赖的package包/类
private static void checkTerminated(final Phaser phaser) {
    check(phaser.isTerminated());
    int unarriverParties = phaser.getUnarrivedParties();
    int registeredParties = phaser.getRegisteredParties();
    int phase = phaser.getPhase();
    check(phase < 0);
    equal(phase, phaser.arrive());
    equal(phase, phaser.arriveAndDeregister());
    equal(phase, phaser.arriveAndAwaitAdvance());
    equal(phase, phaser.bulkRegister(10));
    equal(phase, phaser.register());
    try {
        equal(phase, phaser.awaitAdvanceInterruptibly(0));
        equal(phase, phaser.awaitAdvanceInterruptibly(0, 10, SECONDS));
    } catch (Exception ex) {
        unexpected(ex);
    }
    equal(phaser.getUnarrivedParties(), unarriverParties);
    equal(phaser.getRegisteredParties(), registeredParties);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:21,代码来源:Basic.java

示例3: test

import java.util.concurrent.Phaser; //导入方法依赖的package包/类
void test(String[] args) throws Throwable {
    final Phaser parent = new Phaser();
    final Phaser child1 = new Phaser(parent);
    final Phaser child2 = new Phaser(parent);

    Thread t1 = new Thread(runner(child1));
    Thread t2 = new Thread(runner(child2));
    t1.start();
    t2.start();

    for (int prevPhase = 0, phase; ; prevPhase = phase) {
        phase = child2.getPhase();
        check(phase >= prevPhase);
        if (System.nanoTime() - quittingTimeNanos > 0) {
            System.err.printf("phase=%d%n", phase);
            child1.forceTermination();
            break;
        }
    }

    t1.join();
    t2.join();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:24,代码来源:TieredArriveLoops.java

示例4: runner

import java.util.concurrent.Phaser; //导入方法依赖的package包/类
Runnable runner(final Phaser p) {
    return new CheckedRunnable() { public void realRun() {
        int prevPhase = p.register();
        while (!p.isTerminated()) {
            int phase = p.awaitAdvance(p.arrive());
            if (phase < 0)
                return;
            equal(phase, (prevPhase + 1) & Integer.MAX_VALUE);
            int ph = p.getPhase();
            check(ph < 0 || ph == phase);
            prevPhase = phase;
        }
    }};
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:15,代码来源:TieredArriveLoops.java

示例5: testMultiWaitingOnSimpleMonitor

import java.util.concurrent.Phaser; //导入方法依赖的package包/类
/**
 * Tests that waiting multiple times on the same monitor subsequently
 * increases the waited count by the number of subsequent calls and the
 * waited time by a positive number.
 */
private static void testMultiWaitingOnSimpleMonitor() throws Exception {
    System.out.println("testWaitingOnMultipleMonitors");
    final Object lock1 = new Object();

    final Phaser p = new Phaser(2);
    LockerThread lt = newLockerThread(new Runnable() {
        @Override
        public void run() {
            p.arriveAndAwaitAdvance(); // phase[1]
            synchronized(lock1) {
                System.out.println("[LockerThread obtained Lock1]");
                for (int i = 0; i < 3; i++) {
                    try {
                        lock1.wait(300);
                    } catch (InterruptedException ex) {
                        // ignore
                    }
                    p.arriveAndAwaitAdvance(); // phase[2-4]
                }
            }
            p.arriveAndAwaitAdvance(); // phase[5]
        }
    });

    lt.start();
    ThreadInfo ti1 = mbean.getThreadInfo(lt.getId());
    synchronized(lock1) {
        p.arriveAndAwaitAdvance(); //phase[1]
        waitForThreadState(lt, Thread.State.BLOCKED);
    }
    int phase = p.getPhase();
    while ((p.arriveAndAwaitAdvance() - phase) < 3); // phase[2-4]

    testWaited(ti1, () -> mbean.getThreadInfo(lt.getId()), 3);
    p.arriveAndDeregister(); // phase[5]

    lt.join();

    printok();
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:46,代码来源:SynchronizationStatistics.java

示例6: phaserToString

import java.util.concurrent.Phaser; //导入方法依赖的package包/类
private String phaserToString(Phaser p) {
    return "[phase = " + p.getPhase() +
           " parties = " + p.getRegisteredParties() +
           " arrived = " + p.getArrivedParties() + "]";
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:6,代码来源:ThreadStateController.java


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