0

在 Java 应用程序上运行 strace 后,我注意到系统调用很长时间(主要是 futex)。

futex(0x7f8578001fd4, FUTEX_WAIT_PRIVATE, 1311, NULL) = 0 <15.082094> 

我真的很想了解对 futex 的等待是针对这里的哪些共享资源。

但是,我不确定如何?

我做了一些谷歌搜索,发现 GDB 有助于找到上述原因。但不幸的是,我对 GDB 不太了解,因为我以前几乎没有使用过它。

有些人可以帮助我了解如何找到我正在寻找的答案。

4

1 回答 1

1

futex 操作正在等待另一个线程释放锁。您应该首先查看 Java 感知工具,看看这是否是高级 Java 锁。也许甚至发送SIGQUIT(通过按 Ctrl+\ 就足够了)。

于 2018-03-10T19:52:44.157 回答