【发布时间】:2012-06-28 16:48:18
【问题描述】:
我正在开发一个 Java 程序,该程序应该尽快重复杀死两个进程,因为它们在被杀死时会不断重启。当然,它不应该使用太多的 CPU 时间。我在 python 中编写了几乎相同的程序,它使用大约 5% 的 CPU 运行良好。
我开始使用Runtime.exec 和"ps -ax" 列出所有正在运行的进程,然后在字符串中搜索不需要的进程的名称,然后使用"killall -9" + process_name 运行exec 来杀死它。这只是我能想到的第一种方式,任何想法都会受到赞赏。
但是当我执行代码时,我的计算机一直运行得很热,经过一些时间测试后,我发现exec 命令需要大约 15 到 25 毫秒。现在为什么要花这么长时间,有没有更快的方法来完成这项工作?
顺便说一句,我使用 mac os,并不关心解决方案是否独立于平台。
【问题讨论】:
-
首先停止进程重启会更好吗?
-
我不知道你为什么需要做这样的事情。但如果你真的必须,为什么选择Java?它不太适合这种任务。
-
25ms 不算太多,我猜你试图杀死的那些进程在启动时会浪费更多资源
-
(Emil Vikström) 这是我不想要的两个守护进程,但由于我不是管理员,所以我认为我必须反复杀死它们 (tofarr) 是的,但我怎样才能阻止它们重新启动。我不是管理员,但我拥有这些进程,所以我可以杀死它们。 @MichałKosmulski 1. 因为它很容易上手。我的 python 脚本工作正常,但我总是必须启动 IDLE 才能运行它,而使用 java 我可以创建一个 jar 或类文件。我还编写了一个小型 java 程序,它在同一个文件夹中启动我的小型 python 脚本,我可以压缩共享,但对我来说似乎很愚蠢。 2.我在学习java