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

有什么方法可以立即停止线程吗?

颜新
2023-03-14

我想知道Java中是否有某种方法可以立即停止线程。我不想检查它的中断状态,我需要立即停止它。这是因为在Thread的run方法中有许多计算,为了使用interrupted实现我想要的结果,我必须到处注入状态检查。那么有什么方法可以立即中断线程吗?也许stop()方法?我知道有人说它不应该被使用,因为死锁,但如果它可以解决我的问题(即使它会引起另一个问题;))我可以用它。所以?附注。我知道有其他类似的问题,但在任何地方,人们都给出类似的问题中断(),这不适合我。

共有1个答案

东龙野
2023-03-14

@alya'a gamal指出的问题/答案是正确的。

如果应用程序的设计假设强制停止线程、进程或程序(比如使用kill-9或通过Windows上的任务管理器停止它)是可以的,那么您真的需要证明这一点,因为这听起来像是一个糟糕的设计选择。如果你用了别人的app,按需关闭的唯一方法就是强行停止,你不觉得那是一个相当大的漏洞吗?

如果您有长时间运行的循环或算法,并且能够在任意点停止它们是很重要的,那么您必须设置某种定期的状态或信号检查,以便正确地执行此操作。

 类似资料:
  • 我的应用程序设置为(非故意)服务将使用gps/网络侦听器轮询位置。它工作得很好,因为我负责服务何时结束(即在找到新位置或达到超时时调用stopSelf())。然而,我最近读到,intentService可能更适合长时间运行的任务,因为它不是在ui线程上运行的,而是在自己的工作线程上运行的。问题是,现在它不允许服务在任何时间运行(我假设这是因为服务中没有任何活动发生,而侦听器等待接收位置,因此服务本

  • 问题内容: 这是我要执行的一些代码。我想等待AJAX​​响应,以便可以从服务器返回一些信息。有什么办法可以做到这一点? 问题答案: 很高兴在这里读到。 这实际上不是“同步的”,但我认为它可以达到OP的预期。 旧的(自此之后,jQuery的选项已被弃用): 所有Ajax调用都可以异步(使用回调函数,这是在“成功”键之后指定的函数)或同步完成-有效地阻止并等待服务器应答。要获得同步执行,您必须指定 就

  • 本文向大家介绍C#停止线程的方法,包括了C#停止线程的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#停止线程的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 问题内容: 是否可以在不设置/检查任何标志/信号灯/等的情况下终止正在运行的线程? 问题答案: 在Python和任何语言中,突然终止线程通常都是一种糟糕的模式。请考虑以下情况: 线程持有必须正确关闭的关键资源 该线程创建了其他几个必须同时终止的线程。 如果你负担得起的话(如果你要管理自己的线程),处理此问题的一种好方法是有一个标志,每个线程定期检查一次,以查看是否该退出。 例如: 在此代码中,你应

  • 我正在寻找一种方法来停止/杀死线程,我看到Thread.stop()已被弃用。所以我开始寻找另一个解决方案,并看到多个帖子建议这样做: 但这不会阻止我的线程,我的线程看起来像这样: 有人得到我可以用来停止/杀死我的线程的解决方案吗?非常感谢任何帮助。