专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 大型企业常见java多线程面试题

大型企业常见java多线程面试题

更新时间:2020-04-22 14:42:41 来源:动力节点 浏览1891次

    1.现在有线程T1、T2和T3。你如何确保T2线程在T1之后执行,并且T3线程在T2之后执行?

    这个线程面试题通常在第一轮面试或电话面试时被问到,这道多线程问题为了测试面试者是否熟悉join方法的概念。答案也非常简单——可以用Thread类的join方法实现这一效果。

    2.Java中新的Lock接口相对于同步代码块(synchronizedblock)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。

    多线程和并发编程中使用lock接口的最大优势是它为读和写提供两个单独的锁,可以让你构建高性能数据结构,比如ConcurrentHashMap和条件阻塞。

    这道Java线程面试题越来越多见,而且随后的面试题都基于面试者对这道题的回答。

    我强烈建议在任何Java多线程面试前都要多看看有关锁的知识,因为如今电子交易系统的客户端和数据交互中,锁被频繁使用来构建缓存。

    3.Java中wait和sleep方法有什么区别?

    我们来看看另一个经常被问到的线程面试题。这道题常出现在电话面试中。两者主要的区别就是等待释放锁和监视器。sleep方法在等待时不会释放任何锁或监视器。wait方法多用于线程间通信,而sleep只是在执行时暂停。可以看我另一篇有关Java中wait和sleep的文章。

大型企业常见java多线程面试题

    4.如何在Java中实现一个阻塞队列?

    这是一道相对困难的Java多线程面试题,考察点很多。它考察了面试者是否真正写过Java多线程代码,考察了面试者对并发场景的理解。并且可以根据面试者的代码问很多后续问题,如果他用wait()和notify()方法成功实现了阻塞队列,可以让他用Java5的并发类重新实现一次。

    5.如何在Java中编写代码解决生产者消费者问题?

    和上面有关线程的问题相似,这个问题在工作中很典型,但有时面试官会问这类问题,比如“在Java中如何解决生产者消费者问题?”其实,有很多解决方式。我分享过用Java中BlockingQueue的解决方案。有时他们甚至会让你给出哲学家进餐问题的解决方案。

    6.写一段死锁代码。你在Java中如何解决死锁?

    这是我最喜欢的Java多线程面试题,因为即使死锁在多线程并发编程中十分常见,许多面试者仍然抓耳挠腮,不能写出无死锁的代码。

    只需要问他们如果有N个资源和N个线程去执行某个操作,然后请求所有资源。

    这里的N可以是2作为最简单的情况,也可以是个很大的数字让问题变复杂。有关死锁的更多信息可以看这篇文章Java中如何避免死锁。

大型企业常见java多线程面试题

    7.什么是原子操作?Java中有哪些原子操作?

    这是个简单的Java线程面试题。另一个紧随其后的问题将是:你需要同步原子操作吗?你可以看这篇文章了解更多Java同步。

    8.Java中volatile关键字是什么?你如何使用它?它和Java中的同步方法有什么区别?

    自从Java5中调整volatile关键字和Java内存模型后,有关volatile关键字的线程问题越来越常见。掌握volatile变量在并发环境中如何确保可见性、有序性和一致性非常重要。

    9.什么是竞态条件?你如何发现并解决竞态条件?

    这个Java多线程问题一般出现在高级面试。多数面试官会问你最近一次遇到的竞态条件,如何解决的,有时他们也会写点简单代码让你发现竞态条件。可以看看我的这篇文章Java中的竞态条件。我认为,这是最棒的Java线程面试问题之一,而且可以测试出面试者解决竞态条件的经验,或是编写无数据竞争、无其竞态条件的代码经验。

    10.在Java中你如何转储线程(threaddump)?如何分析它?

    在UNIX中,你可以使用kill-3然后线程转储日志会打印在屏幕上,可以使用CTRL+Break查看。这只是一个较简单的线程面试题,狡猾一点的话他们会问你如何分析转储日志。线程转储日志对于分析死锁情况非常有用。

大型企业常见java多线程面试题

 以上就是动力节点java培训机构的小编针对“大型企业常见java多线程面试题”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>