当前位置: 首页 > 网络应用技术

[Java采访]如何中断线程运行?

时间:2023-03-08 21:45:38 网络应用技术

  在JD.com工作了5年的粉丝来了,我说:

  麦克风老师,您说并发编程非常重要。果然,我再次挂在面试问题上,以进行同时进行编程。

  我问他是什么问题,他说:“如何打断跑步的线程?”。

  我说过许多为这个问题工作了两年的人知道?

  好吧,就这个问题而言,看看普通百姓和大师的答案。

  um.sessessenseSessenseSessenceSessenceSessenceSessenceSessenceSessenceence

  我从几个方面回答了这个问题。

  首先,线程是系统级别的概念。在Java中实现的线程,最终执行和调度由操作系统确定。JVM仅在操作系统级别的线程上包装一层包装。

  因此,当我们通过Java中的启动方法启动线程时,我们只告诉操作系统可以执行该线程,但最终由操作系统的调度算法确定,以将其执行到CPU。

  因此,从理论上讲,要中断在Java级别运行的线程,它只能像类似于Linux命令中的Kill命令的方式终止该过程。

  因此,Java线程提供了可以被强制终止的停止方法,但是此方法是不安全的,因为线程的任务尚未,从而导致操作结果不正确。

  如果要中断安全运行的线程,则只能将钩子埋在线内。外部程序通过此钩子触发线程的中断命令。

  因此,Java线程中提供了一个中断()方法。该方法可以与ISInterrupt()方法一起使用,以实现安全的中断机制。

  这种实现方法不是强制中断,而是告诉正在运行的线程,您可以停止,但是它是否被中断取决于正在运行的线程,因此它可以确保线程运行结果的安全性。

  以上是我对这个问题的理解!

  许多工作超过5年的朋友可能不清楚。

  我想说的是,除了Crud的重复工作外,除了前三年外,还会有很多增长,随后的时间基本上是在做重复的劳动。

  除了工作之外,与他人的差距正好8小时。

  如果您认为工作很好,请记住喜欢并遵循。

  除了该博客的特别声明外,还采用了CC BY-NC-SA 4.0许可协议。请先注释,请从!如果本文对您有所帮助,请帮助注意和赞美。您的持久性是我连续创作的动力。Welcome遵循微信的公开帐户,以获取更多技术干货!

  原始:https://juejin.cn/post/7102686826216816677