java - 在有限的时间内暂停 JVM

标签 java jvm

如何在可配置的时间内暂停 JVM 的执行,类似于在完整、串行、垃圾收集上发生的事情?我想测试一些边缘情况,但是很难通过手动生成垃圾 + System.gc() 来创建我需要的确切暂停。


我正在尝试“卡住”应用程序中的所有线程,以模拟应用程序无响应然后恢复执行的情况。该应用程序是集群的一部分,我正在尝试调试一些离开/加入/重新加入问题。

最佳答案

JVM 挂起可以用 jdb 从命令行完成:

jdb -attach 8787
Initializing jdb ...
> suspend
All threads suspended.
> resume
All threads resumed.
> exit

但这需要用 -Xdebug ...

启动

还有universal way暂停和恢复 Linux/Unix 上的任何进程:

kill -SIGSTOP PID
kill -SIGCONT PID

另见 How to suspend/resume a process in Windows?

关于java - 在有限的时间内暂停 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2674292/

相关文章:

JAVA:类什么时候应该是静态的还是动态的

java - 为什么map.merge()不是每次都调用remapping函数?

Yocto 构建上的 JAVA 安装错误

Java Flight Recorder——缺少文件写入/读取事件

java - 运行一个 Jar 两次

javascript - 是否有更有效的算法来展平数组?

java - 如何使用 Java Mission Control 监控远程服务器中的 JVM?

java - 64 位 Java VM 运行应用程序速度慢 10 倍

jvm - JDK中找不到JRE

java - 设置命令行构建的 debug.keystore 位置,无需重写 Ant 目标