gpt4 book ai didi

java - 关于垃圾收集器行为的查询

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:05 24 4
gpt4 key购买 nike

正如我在 Sun 内存管理白皮书中读到的:

When stop-the-world garbage collection is performed, execution of the application is completely
suspended during the collection

因此,如果在垃圾收集器运行时发生请求,那么应用程序如何处理它?如果垃圾收集器花费的时间太长,应用程序会抛出异常吗?我没有遇到过这样的问题,但想知道这是否可能以及抛出什么异常?

最佳答案

所有(几乎)Java 垃圾收集器都有某种 Stop-the-world 阶段,其中所有 Java 线程都被挂起,等待独占系统操作完成。此状态有时称为安全点

现代垃圾收集器与应用程序线程并发运行,这意味着垃圾收集器与应用程序同时执行其工作。在垃圾收集器进程中,存在需要独占访问内存的阶段,应用程序线程进入此安全点状态。

如果垃圾收集器无法回收足够的内存来满足应用程序的分配需求,则会抛出异常。

摆脱停止世界垃圾收集的一种替代方法是使用 Azul 系统的 C4 收集器的 Zing JVM。该实现采用低暂停方法,根本没有停止世界的收集。相反,它使用没有停止世界阶段的并发压缩方法。

关于java - 关于垃圾收集器行为的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18464838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com