首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >常规退出和eclipse终止有什么区别?

常规退出和eclipse终止有什么区别?
EN

Stack Overflow用户
提问于 2014-04-03 22:54:57
回答 1查看 201关注 0票数 0

当我按下ALT+F4(Win)或CMD+Q(Mac)退出程序时,程序会挂起,直到我使用任务管理器强制退出为止。

但是,当我使用eclipse的终止按钮终止程序时,程序可以很好地关闭,而不会挂起。

关闭应用程序的两种方法有什么区别?

例如,当我们执行常规退出(即ALT+F4)时,应用程序中的线程不会自行终止,而在eclipse中,线程是“被迫”终止的吗?

编辑 我刚刚意识到System.exit(0)等同于“强制退出”(即不挂起)。有什么方法可以检测ALT+F4或CMD+Q何时被按下,然后系统/程序就会执行System.exit? 编辑2 我做了以下工作,但问题仍然存在:

  1. 我试着把我所有的线程都换成了守护进程。

  1. 我使用jvisualvm查看在按下ALT+F4之后哪些线程仍在运行。我确实意识到一些“池-我线程-i”线程仍在运行。(有任何方法来指出密码的哪一部分代表“池-i线程-i”?我怀疑这些线程是我使用过的第三方库创建的。)

  1. 在我的线程/可调用对象中,我在线程的末尾有一个控制台输出,当我ALT+F4程序时,控制台输出将显示出来。例如,

代码语言:javascript
运行
复制
public Void call() {
    while(true) {
        
    }
    System.out.println("Thread has finished");
}

当我按下“线程已完成”时,控制台将打印“ALT+F4”,因此我假设这些线程已正确结束。

EN

回答 1

Stack Overflow用户

发布于 2014-04-03 23:52:40

Eclipse按钮基本上执行任务管理器中的强制退出--它强制终止进程。Alt+F4或CMD+Q会通知程序被终止,这应该是及时的响应;如果没有,您将在Windows中得到无响应的程序警报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22850485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档