在Java应用程序上运行strace时,我注意到很长时间的系统调用(主要是futex)。
futex(0x7f8578001fd4, FUTEX_WAIT_PRIVATE, 1311, NULL) = 0 <15.082094>
我真的很想了解futex上的等待是针对哪些共享资源的。
但是,我不确定如何?
我做了一些谷歌搜索,发现GDB可以帮助找到上述原因。但不幸的是,我并不太了解GDB,因为我之前几乎没有使用它。
有些人可以帮助我理解如何找到我正在看的答案。
答案 0 :(得分:1)
futex操作正在等待另一个线程释放锁定。您应该首先查看Java感知工具,看看这是否是一个高级Java锁。也许甚至发送SIGQUIT
(通过按Ctrl + \就足够了)。