java应用程序在linux上运行无法自动退出

java应用程序在linux上运行无法自动退出,第1张

你看看是不是你while(true)里面得加上个sleep1毫秒或者yield之类的啊,可能linux的线程调度算法不一样,你这样死命循环可能其他线程就没机会运行了,你加了println之后因为输出屏幕,所以等待io的时候其他线程有机会执行

多数人可能会回答 kill -9 pid,这是一种在多数情况下正确的做法。不过本文打算阐述使用kill -9带来的一些问题,并给出另一种标准的kill方式。

标准中断信号

在Linux信号机制中,存在多种进程中断信号(Linux信号列表 )。其中比较典型的有 SIGNKILL(9) 和 SIGNTERM(15).

SIGNKILL(9) 和 SIGNTERM(15) 的区别在于:

SIGNKILL(9) 的效果是立即杀死进程. 该信号不能被阻塞, 处理和忽略。

SIGNTERM(15) 的效果是正常退出进程,退出前可以被阻塞或回调处理。并且它是Linux缺省的程序中断信号。

由此可见,SIGNTERM(15) 才是理论上标准的kill进程信号。

SIGNKILL(9) 带来的问题

先看一段程序


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

原文地址:https://54852.com/yw/7211401.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存