何时使用Java线程API

何时使用Java线程API,java,multithreading,Java,Multithreading,就我个人而言,我使用抽象是因为它们更容易。事实上,我已经记不起我最后一次使用theads是什么时候了。但在技术面试中,这是一个经常被问到的问题。是的,我也问过 当需要使用低级线程API而不是执行器/锁/闩锁等时,是否存在任何用例 是否有任何理由在技术面试期间讨论低级线程API?技术面试通常旨在衡量应聘者的知识深度,而不是任何特定能力。可以说,在长达15到20年的时间里,没有必要实现您自己的链表和二叉树,但是在技术访谈中,经常会出现关于实现这些数据结构的问题。聪明的候选者应该能够从简短的教程和AP

就我个人而言,我使用抽象是因为它们更容易。事实上,我已经记不起我最后一次使用theads是什么时候了。但在技术面试中,这是一个经常被问到的问题。是的,我也问过

当需要使用低级线程API而不是执行器/锁/闩锁等时,是否存在任何用例


是否有任何理由在技术面试期间讨论低级线程API?

技术面试通常旨在衡量应聘者的知识深度,而不是任何特定能力。可以说,在长达15到20年的时间里,没有必要实现您自己的链表和二叉树,但是在技术访谈中,经常会出现关于实现这些数据结构的问题。聪明的候选者应该能够从简短的教程和API文档中找出高级并发API。您可以询问线程原语,以查看应征者是否了解在一般情况下使用并发时,无论调用什么API,幕后发生了什么


就我个人而言,当我问一些你从未使用过的问题时,我并不坚持要得到正确的名称或API方法参数的正确顺序。只要候选人对这个概念很清楚,我不介意他们不记得特定API的细节。

< P>如果你想实现一些非常具体的东西,你就被遗留代码、旧版本的java所困扰,或者你需要一个没有提供的抽象,然后我会考虑使用原始的低级别线程API。即使使用的是旧版本/遗留代码,但请记住,如果降低了维护成本,那么切换到较新的API可能是值得的——就我个人而言,我尝试将用户生成的并发代码数量保持在最低限度

也许他们仍然在使用1.4,而这些抽象不可用?令人担忧,但也有可能。是否有任何理由浏览join、wait、notify、notify等所有内容?@MairbekKhadikov我会非常简要地浏览这些内容,只是为了确保候选人了解他们的总体行为,而不必详细了解如何正确称呼他们。例如,我会问“notify和notifyAll之间有什么区别”,而不是“告诉我如何调用notify”。