java当GC进程运行时,应用程序停止运行吗

java当GC进程运行时,应用程序停止运行吗,第1张

对于创建大量对象的大型应用程序,JVM 花在垃圾收集(GC)上的时间会非常多。默认情况下,进行 GC 时,整个应用程序都必须等待它完成,这可能要有几秒钟甚至更长的时间(Java 应用程序启动器的命令行选项 -verbose:gc 将导致向控制台报告每一次 GC 事件)。要将这些由 GC 引起的暂停(这可能会影响快速任务的执行)降至最少,应该将应用程序创建的对象的数目降至最低。同样,在单独的 JVM 中运行计划代码是有帮助的。同时,可以试用几个微调选项以尽可能地减少 GC 暂停。例如,增量 GC 会尽量将主收集的代价分散到几个小的收集上。当然这会降低 GC 的效率,但是这可能是时间计划的一个可接受的代价

资料引用:>

1

Threadsleep(4000);

暂停4000毫秒,也就是四秒,如果像无限暂停那就把4000改成一个足够大的数

注意引入Thread的包,Eclipse或Intellij会自动提示 (我忘了在哪个包了~

2

可以用javautilScanner来要求用户输入东西以达到暂停效果,

具体使用方法请百度

如果你有360程序之类的 第一个方法就是使用新版的360安全卫士 找到左下角的类似彩色风扇的东西 鼠标到那边就会在那边d出窗口 点“立即加速” 在点之前 先取消勾选 Java SE Binary 我不记得是什么。。

第二个方法是 整理系统的资源 等有了够多的RAM空间就设置较大限数 如果你电脑是2GB 那么可以15G 也就是1500MB

不行就换个好的电脑 或者尝试重启

没有360就使用系统自带的 Windows任务管理器 找到占用大的 (不能包括javaexe和Javawexe 点关闭进程会被迫关闭正在运行的Java进程 还有一个是svchost 系统功能 关闭就自启动 也就叫非法关机)由于时间关系 就这样了

  java控制程序执行,使用的是Thread这个类,可以控制程序暂停或者休眠几秒再执行。示例如下:

public abstract class MyThread extends Thread {  

  

    private boolean suspend = false;  

  

    private String control = ""; // 只是需要一个对象而已,这个对象没有实际意义  

  

    public void setSuspend(boolean suspend) {  

        if (!suspend) {  

            synchronized (control) {  

                controlnotifyAll();  

            }  

        }  

        thissuspend = suspend;  

    }  

  

    public boolean isSuspend() {  

        return thissuspend;  

    }  

  

    public void run() {  

        while (true) {  

            synchronized (control) {  

                if (suspend) {  

                    try {  

                        controlwait();  

                    } catch (InterruptedException e) {  

                        eprintStackTrace();  

                    }  

                }  

            }  

            thisrunPersonelLogic();  

        }  

    }  

  

    protected abstract void runPersonelLogic();  

      

    public static void main(String[] args) throws Exception {  

        MyThread myThread = new MyThread() {  

            protected void runPersonelLogic() {  

                Systemoutprintln("myThead is running");  

            }  

        };  

        myThreadstart();  

        Threadsleep(3000);  

        myThreadsetSuspend(true);  

        Systemoutprintln("myThread has stopped");  

        Threadsleep(3000);  

        myThreadsetSuspend(false);  

    }  

}

以上就是关于java 当GC进程运行时,应用程序停止运行吗全部的内容,包括:java 当GC进程运行时,应用程序停止运行吗、编写java程序时如何强制结束程序、java中如何暂停一个程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10108174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存