我正在查看一个jstack日志,这是我所看到的:
“ com.mchange.v2.async.ThreadPoolAsynchronousRunner $ PoolThread-#2”#250守护程序prio = 5 os_prio = 0 tid = 0x00007f9de0016000 nid = 0x7e54可运行[0x00007f9d6495a000] java.lang.Thread.State:com.mchange.v在RUNNABLE .async.ThreadPoolAsynchronousRunner $ PoolThread.run(ThreadPoolAsynchronousRunner.java:534)-锁定< 0x00000006fa818a38 >(com.mchange.v2.async.ThreadPoolAsynchronousRunner)
“ com.mchange.v2.async.ThreadPoolAsynchronousRunner $ PoolThread-#1”#249守护程序prio = 5 os_prio = 0 tid = 0x00007f9de000c000 nid = 0x7e53等待监视器条目[0x00007f9d649db000] java.lang.Thread.State:已锁定(在对象上监视器)在java.lang.Object.wait(本机方法)-在< 0x00000006fa818a38 >(com.mchange.v2.async.ThreadPoolAsynchronousRunner)(在com.mchange.v2.async.ThreadPoolAsynchronousRunner $ PoolThread.run(ThreadPoolAsynchronousRunner.java)上等待:534)-锁定< 0x00000006fa818a38 >(com.mchange.v2.async.ThreadPoolAsynchronousRunner)
“ com.mchange.v2.async.ThreadPoolAsynchronousRunner $ PoolThread-#0”#248守护程序prio = 5 os_prio = 0 tid = 0x00007f9de001a000 nid = 0x7e52等待监视器条目[0x00007f9d64a5c000] java.lang.Thread.State:BLOCKED(在对象上监视器)在java.lang.Object.wait(本机方法)-在< 0x00000006fa818a38 >(com.mchange.v2.async.ThreadPoolAsynchronousRunner)(在com.mchange.v2.async.ThreadPoolAsynchronousRunner $ PoolThread.run(ThreadPoolAsynchronousRunner.java)上等待:534)-锁定< 0x00000006fa818a38 >(com.mchange.v2.async.ThreadPoolAsynchronousRunner)
因此,在此日志中,这三个线程中的每个线程都设法获得了相同的锁,并且实际上阻塞了底部的两个线程,以等待相同的锁。
有人可以告诉我这个堆栈日志是什么意思吗?
白衣非少年
临摹微笑
绝地无双
相关分类