在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