package com.brianway.learning.java.multithread.lock.example5; /** * Created by Brian on 2016/4/15. */ /** * P221 * 测试方法int getWaitQueueLength(Condition condition) * 返回等待与此锁定相关的给定条件Condition的线程估计数 */ public class Run5_getWaitQueueLength { public static void main(String[] args) throws InterruptedException { final Service3 service = new Service3(); Runnable runnable = new Runnable() { public void run() { service.waitMethod(); } }; Thread[] threads = new Thread[10]; for (int i = 0; i < 10; i++) { threads[i] = new Thread(runnable); } for (int i = 0; i < 10; i++) { threads[i].start(); } Thread.sleep(2000); service.notifyMethod(); } } /* 输出: before await Thread-0 before await Thread-5 before await Thread-3 before await Thread-8 before await Thread-1 before await Thread-2 before await Thread-4 before await Thread-6 before await Thread-7 before await Thread-9 有10个线程正在等待newCondition after await Thread-0 */