千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:武汉千锋IT培训  >  面试技巧  >  这5个关于Java多线程的面试题,如何正确解答?

这5个关于Java多线程的面试题,如何正确解答?

来源:千锋教育
发布人:lemon
时间: 2021-10-19 15:31:12

       多线程和并发方面的问题是Java程序员在面试中不可避免的问题,想要在面试中从容面对这些问题,那么在平时一定要对多线程和并发有清楚的了解。下面,千锋武汉Java培训老师就分享五个常见的Java多线程面试题及回答。

50

       1、现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?

       这个线程问题通常会在头一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用join方法实现。

       2、在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?

       lock接口在多线程和并发编程中最大的优势是它们为读和写分别提供了锁,它能满足你写像ConcurrentHashMap这样的高性能数据结构和有条件的阻塞。Java线程面试的问题越来越会根据面试者的回答来提问。我强烈建议在你去参加多线程的面试之前认真读一下Locks,因为当前其大量用于构建电子交易终统的客户端缓存和交易连接空间。

       3、在Java中wait和sleep方法的不同?

       通常会在电话面试中经常被问到的Java线程面试问题。最大的不同是在等待时Wait会释放锁,而sleep一直持有锁。Wait通常被用于线程间交互,sleep通常被用于暂停执行。

       4、用Java实现阻塞队列。

       这是一个相对艰难的多线程面试问题,它能达到很多的目的。一,它可以检测侯选者是否能实际的用Java线程写程序;第二,可以检测侯选者对并发场景的理解,并且你可以根据这个问很多问题。如果他用wait()和notify()方法来实现阻塞队列,你可以要求他用新的Java9中的并发类来再写一次。

       5、用Java编程一个会导致死锁的程序,你将怎么解决?

       因为即使死锁问题在写多线程并发程序时非常普遍,但是很多侯选者并不能写deadlockfreecode(无死锁代码?),他们很挣扎。只要告诉他们,你有N个资源和N个线程,并且你需要所有的资源来完成一个操作。为了简单这里的n可以替换为2,越大的数据会使问题看起来更复杂。通过避免Java中的死锁来得到关于死锁的更多信息。

       以上就是千锋武汉Java培训老师分享的面试官经常会问的5个Java多线程问题及答案解析。如果你想学Java,可以来千锋武汉Java培训机构,大牛讲师全程面授,更有两周免费试听,亲身实地感受授课质量。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>