当前位置: 首页 > 知识库问答 >
问题:

从ExecutorService获取当前正在运行的线程对象

程俊誉
2023-03-14

我使用ExecutorService(全局声明)同时运行多线程。ExecutorService需要一个小时才能完成任务。因此,我需要获得当前运行的线程详细信息,如活动线程,排队线程和完成线程。

但事情是我需要停止在15分钟内发送新的请求到服务器或调用一些方法。

这里shutdown或shutdowNow停止执行器,但不停止这5个线程。这就是问题所在。所以我需要手动杀死那些线程。如何杀死executor服务中手动附加的线程?

共有1个答案

江阳夏
2023-03-14

我找到了解决方案,所有的线程都追加到Callable中,并使用ExecutorService调用可调用线程。ExecutorService只包含active、queue和completed详细信息的值。执行后,结果将使用Future类获取值。

现在,如果我想在完成前停止执行。我需要调用可调用的对象,并转换成线程对象和停止手动,如果线程不为空。因此,可调用对象也会改变为全局变量。结束执行,移除那些对象。

 类似资料:
  • 问题内容: 有什么方法可以获取当前JVM中所有正在运行的线程的列表(包括不是由我的类启动的线程)? 是否还可以获取列表中所有线程的和对象? 我希望能够通过代码做到这一点。 问题答案: 要获得一个可迭代的集合:

  • 我希望能够获得我已经提交给执行服务(特别是线程池执行器)的Callable(因此它们不能通过getQueue())。 我试图创建一个子类来覆盖beForeExecute之前的

  • 在nodejs中,我使用__dirname。在戈兰,这相当于什么? 我在谷歌上找到了这篇文章http://andrewbrookins.com/tech/golang-get-directory-of-the-current-file/.他使用下面的代码 但是,这是正确的方式还是习惯的方式做在戈朗?

  • 问题内容: 我正在寻找一种方法来查看当前正在运行的线程数 首先通过Windows 以编程方式 问题答案: 这将为您提供VM中的线程总数: 现在,如果您希望当前正在执行所有线程,则可以执行以下操作: 这里列举了可能的状态:Thread.State javadoc 如果要查看不是通过编程方式而是通过Windows工具运行的线程,可以使用Process Explorer 。

  • 问题内容: 我可以通过Remote API找到有关我的Jenkins服务器的所有信息,但不能找到当前正在运行的作业的列表。 这个, 要么 看起来似乎是最合乎逻辑的选择,但是他们没有说出(实际上是作业数)实际正在运行的作业。 问题答案: 我有一个使用“ 查看作业过滤器”插件定义的视图,该视图仅过滤当前正在运行的作业,然后您可以在视图页面上使用以查看正在运行的作业。我也有一个用于流产,不稳定等。 更新

  • 问题内容: 我正在研究用于并行计算JavaSeis.org的软件开发框架。我需要一个强大的机制来报告线程异常。在开发过程中,了解异常来自何处具有很高的价值,因此我想在过度报告方面犯错。我还希望能够在线程中处理Junit4测试。下面的方法是合理的还是有更好的方法? 问题答案: 我不相信在使用时有标准的“钩子”来获取这些异常。但是,如果您需要支持(听起来很合理,假设您使用),则始终可以包装Callab