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

Java-Linux的Process.destroy()源代码

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

Java-Linux的Process.destroy()源代码

进程管理和所有类似操作均由OS完成。因此,JVM必须调用适当的系统调用才能破坏进程。显然,这将在操作系统之间有所不同。

在Linux上,我们可以通过

kill
syscall来执行此操作-或
exit
是否要终止当前正在运行的进程。当然,JDK源代码中的本机方法是根据要运行JVM的操作系统分开的。如前所述,
Process
有一种
publicvoiddestroy()
方法。对于Linux,此方法由实现
UNIXProcess
。该
destroy()
方法的实现非常像这样:

private static native void destroyProcess(int pid);public void destroy() {    destroyProcess(pid);}

destroyProcess()
反过来,本机方法在中定义,
UNIXProcess_md.c
如下所示:

JNIEXPORT void JNICALLJava_java_lang_UNIXProcess_destroyProcess(JNIEnv *env, jobject junk, jint pid){    kill(pid, SIGTERM);}

kill
Linux syscall
在哪里,其源可在Linux内核中找到,更确切地说在file中
kernel/signal.c
。声明为
SYSCALL_DEFINE2(kill,pid_t, pid, int, sig)

祝您阅读愉快!:)



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

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

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