waiting on condition 与 parking to wait for <0x000000072740b888> 结合来看, 该线程肯定是在等待某个条件触发来唤醒自己;
示例三 "http-nio-58032-exec-307" #24690 daemon prio=5 os_prio=0 tid=0x00007f1c341b0800 nid=0x25e19 in Object.wait() [0x00007f199477a000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:82) - locked <0x00000007162a9628> (a org.apache.http.concurrent.BasicFuture) at org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)在 Wait Set 队列中等待的线程状态就是 in Object.wait(); 当线程获得了 Monitor, 进入了临界区之后, 如果发现线程继续运行的条件没有满足, 则会调用对象(一般是被 synchronize 的对象) 的 wait() 方法, 放弃了 Monitor, 进入 Wait Set 队列; 只有当别的线程在该对象上调用 notify() 或者 notifyAll() 时, Wait Set 队列中的线程才得到机会去竞争; 但是也只有一个线程会获得对象的 Monitor, 恢复到运行态;
BasicFuture 的 get 方法, 表示异步请求时等待结果返回;
参考资料三个实例演示 Java Thread Dump 日志分析