珠峰java_珠峰架构师培养计划2021

你将如何使用 threaddump?你将如何分析 Thread dump?

在 UNIX 中你可以使用 kill -3,然后 thread dump 将会打印日志,在 s 中你可以使 用”CTRL+Break”。非常简单和专业的线程面试问题,但是如果他问你怎样分析它,就会很 棘手。

为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?

这是另一个非常经典的 java 多线程面试问题。这也是我刚开始写线程程序时候的困惑。现 在这个问题通常在电话面试或者是在初中级 Java 面试的第一轮被问到。这个问题的回答应 该是这样的,当你调用 start()方法时你将创建新的线程,并且执行在 run()方法里的代码。 但是如果你直接调用 run()方法,它不会创建新的线程也不会执行调用线程的代码。阅读我 之前写的《start 与 run 方法的区别》这篇文章来获得更多信息。

Java 中你怎样唤醒一个阻塞的线程?

这是个关于线程和阻塞的棘手的问题,它有很多解决方法。如果线程遇到了 IO 阻塞,我并 且不认为有一种方法可以中止线程。如果线程因为调用 wait()、sleep()、或者 join()方法而 导致的阻塞,你可以中断线程,并且通过抛出 InterruptedException 来唤醒它。我之前写的 《How to deal with blocking methods in java》有很多关于处理线程阻塞的信息。

你可能感兴趣的:(珠峰java)