当前位置: 首页 > 面试题库 >

Java线程:是否可以查看/暂停/杀死同一JVM上运行的其他Java程序中的特定线程?

郑俊彦
2023-03-14
问题内容

我有一个程序’foo’运行不同的线程,fooT1,fooT2,.. fooTn。

现在,如果我想编写另一个程序“ bar”,它可能会杀死线程fooTr,那可能吗?

原因:fooTr线程之一跟踪产品许可证。如果该线程被杀死;可能会无限期地运行此产品。杀死’foo’本身可以容忍为’foo’,因为这正是许可证到期时所做的事情。

系统:Linux的Fedora发行

注:用于启动JVM和程序foo的命令位于/etc/init.d中,任何对rc.1 / rc.2 / rc.3结构有深入了解的人都可以更改/添加启动参数。

希望我的问题清楚。如果没有,我可以随时对其进行编辑。


问题答案:

据我所知,不可能直接这样做。但是,您可以考虑在“ foo”上创建某种服务,可以从“
bar”调用该服务以杀死线程。当然,有数百种方法可以实现此目的。我首先想到的是使用RMI进行此操作。



 类似资料:
  • 我有一个系统,当它收到来自webservice的调用时启动workers。Worker由ExecutorService启动,要启动的类实现Runnable。但是,如果工作线程超时,我将无法实际杀死该工作线程,这将导致我的系统出现资源问题。 如果工作线程超时,我将看到以下日志消息: 然后是保持空闲的服务,直到另一个工作者请求进入。然而,尽管对ExecutorService和Future分别调用了sh

  • 我对高级Java没有经验,所以请原谅我。 我对Java实现可以称为“自主”的特性的能力很好奇。假设我们有两个Java程序在运行。一个程序确定另一个程序占用内存,因此杀死该程序和/或为JVM分配更多内存。

  • 问题内容: 有没有一种方法可以使用ExecutorService暂停/恢复特定线程? 想象一下,我想停止id == 0的线程(假设为每个线程分配了一个增量ID,直到达到线程池的大小为止)。 过了一会儿,通过按下一个按钮,我想恢复该特定线程,并将所有其他线程保留为当前状态,这些状态可以暂停或恢复。 我在Java文档中发现了PausableThreadPoolExecutor的未完成版本。但这不适合我

  • 问题内容: 我有一个按钮“ addCashier”,它正在创建一个名为“ Cashier”的线程,现在该线程只是每4秒简单地生成一个订单,该线程的run()方法中有while(true)循环。那里一切都很好,但是现在我想添加一个按钮来模拟收银员注销。我在我的while循环onDuty和一个公共函数logOff()中添加了一个布尔变量,该函数将onDuty布尔值设置为false,以使我退出运行的wh

  • 有没有办法使用ExecutorService暂停/恢复特定线程? 想象一下,我想停止id=0的线程(假设为每个线程分配了一个增量id,直到达到线程池的大小)。 过了一会儿,按下一个按钮,比如说,我想恢复那个特定的线程,并让所有其他线程保持其当前状态,可以暂停或恢复。 我在Java文档中发现了PausableThreadPoolExecutor的一个未完成版本。但它不适合我的需要,因为它会恢复池中的

  • 问题内容: 如何java.lang.Thread用Java 杀死A ? 问题答案: 有关他们为何不赞成使用Sun的内容,请参见此主题。它详细介绍了为什么这是一种不好的方法,以及通常应该采取什么措施才能安全地停止线程。 他们建议的方式是使用共享变量作为标志,要求后台线程停止。然后可以由另一个请求线程终止的对象来设置此变量。