更新时间:2019-08-12 13:43:52 来源:极悦 浏览2203次
多线程和并发方面的问题是Java程序员在面试中不可避免的问题,想要在面试中从容面对这些问题,那么在平时一定要对多线程和并发有清楚的了解。下面,极悦注册老师就分享五个常见的Java多线程面试题及回答。
1、现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?
这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用join方法实现。
2、在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?
lock接口在多线程和并发编程中最大的优势是它们为读和写分别提供了锁,它能满足你写像ConcurrentHashMap这样的高性能数据结构和有条件的阻塞。Java线程面试的问题越来越会根据面试者的回答来提问。我强烈建议在你去参加多线程的面试之前认真读一下Locks,因为当前其大量用于构建电子交易终统的客户端缓存和交易连接空间。
3、在Java中wait和sleep方法的不同?
通常会在电话面试中经常被问到的问题。最大的不同是在等待时Wait会释放锁,而sleep一直持有锁。Wait通常被用于线程间交互,sleep通常被用于暂停执行。
4、用Java实现阻塞队列。
这是一个相对艰难的多线程面试问题,它能达到很多的目的。第一,它可以检测侯选者是否能实际的用Java线程写程序;第二,可以检测侯选者对并发场景的理解,并且你可以根据这个问很多问题。如果他用wait()和notify()方法来实现阻塞队列,你可以要求他用最新的Java5中的并发类来再写一次。
5、用Java编程一个会导致死锁的程序,你将怎么解决?
因为即使死锁问题在写多线程并发程序时非常普遍,但是很多侯选者并不能写deadlockfreecode(无死锁代码?),他们很挣扎。只要告诉他们,你有N个资源和N个线程,并且你需要所有的资源来完成一个操作。为了简单这里的n可以替换为2,越大的数据会使问题看起来更复杂。通过避免Java中的死锁来得到关于死锁的更多信息。
以上就是极悦注册老师分享的面试官经常会问的5个Java多线程问题及答案解析。当下Java应用广泛,对于拥有Java技术的程序员来说,职业道路的选择十分的宽广,行业前景之广阔都是可以预见。
如果你想拥有过硬的Java技术,极悦注册机构是你的不二之选。极悦采用100%全程面授教学,拒绝视频同步授课,拒绝双元视频班教学,拒绝直播授课,教师一对一指导学员做项目,全新打造“主流技术+前沿技术+企业级联动”教学课程,重新优化和定义JavaEE,采用最新版本技术开展教学,致力于为学员打造最牛的、最新的技术,助力学员拿下BAT级企业Offer。
选择极悦注册,将带领你成功入门,走上Java开发工程师之路。想了解更多Java行业动态和学习资料,登录极悦IT培训官网。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习