栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何停止ScheduledExecutorService?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何停止ScheduledExecutorService?

您遇到的问题是,取消哔声任务后,调度程序会保留活动线程。

如果存在活动的非守护程序线程,则JVM保持活动状态。

它使该线程保持不变的原因是您已在此行中告诉它这样做:

private final ScheduledExecutorService scheduler        = Executors.newScheduledThreadPool(1);

请注意以下文档

newScheduledThreadPool(int corePoolSize)

corePoolSize
-即使在空闲状态下要保留在池中的线​​程数。

因此,您有两种可能的方法来导致JVM终止:

  1. 传递

    0
    newScheduledThreadPool
    而不是1。调度程序将不保留活动线程,并且JVM将终止。

  2. 关闭调度程序。无论如何,您应该这样做以释放其资源。因此,将

    run
    您的匿名帐户更改
    Runnable
    为:

    public void run() {beeperHandle.cancel(true);scheduler.shutdown();

    }

(实际上,您不需要

cancel
那里-该操作
shutdown
将在下一次“提示音”完成后立即生效。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614097.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号