2022Java后端,Java 多线程50问 你会几问?

发布于:2023-01-04 ⋅ 阅读:(268) ⋅ 点赞:(0)

前言

大家好,金九银十快要来了,整理了50道多线程并发面试题,大家可以点赞、收藏起来,慢慢品!

面试题目:

1、为什么要使用多线程

2. 创建线程有几种方式?

3. start()方法和run()方法的区别 

4. 线程和进程的区别 

 5. 说一下 Runnable和 Callable有什么区别? 

 6. 聊聊volatile作用,原理 

 7. 说说并发与并行的区别?   

8.synchronized 的实现原理以及锁优化?

9. 线程有哪些状态?

10. synchronized和ReentrantLock的区别?

11. wait(),notify()和suspend(),resume()之间的区别

 12. CAS?CAS 有什么缺陷,如何解决?

 13. 说说CountDownLatch与CyclicBarrier 区别 

 14. 什么是多线程环境下的伪共享 

 15. Fork/Join框架的理解 

 16. 聊聊ThreadLocal原理?

17. TreadLocal为什么会导致内存泄漏呢?

18 为什么ThreadLocalMap 的 key是弱引用,设计理念是?

19. 如何保证父子线程间的共享ThreadLocal数据

20. 如何保证多线程下 i++ 结果正确?

21. 如何检测死锁?怎么预防死锁?死锁四个必要条件

22. 如果线程过多,会怎样?

23. 聊聊happens-before原则

24. 如何实现两个线程间共享数据

25. LockSupport作用是?

26 线程池如何调优,如何确认最佳线程数?

27. 为什么要用线程池?

28. Java的线程池执行原理

29. 聊聊线程池的核心参数

30.当提交新任务时,异常如何处理?

31. AQS组件,实现原理

32 Semaphore原理

33 synchronized做了哪些优化?什么是偏向锁?什么是自旋锁?锁租化?

34 什么是上下文切换?

35.为什么wait(),notify(),notifyAll()在对象中,而不在Thread类中

36. 线程池中 submit()和 execute()方法有什么区别?

37 AtomicInteger 的原理?

38 Java中用到的线程调度算法是什么?

39. shutdown() 和 shutdownNow()的区别

40 说说几种常见的线程池及使用场景?

41 什么是FutureTask

42 java中interrupt(),interrupted()和isInterrupted()的区别

43 有三个线程T1,T2,T3,怎么确保它们按顺序执行

44 有哪些阻塞队列

45 Java中ConcurrentHashMap的并发度是什么?

46 Java线程有哪些常用的调度方法?

47. ReentrantLock的加锁原理

48. 线程间的通讯方式

49 写出3条你遵循的多线程最佳实践

50. 为什么阿里发布的 Java开发手册中强制线程池不允许使用 Executors 去创建?

小伙伴们想要答案的和更多相关学习资料请点赞收藏+评论转发+关注我之后私信我,注意回复【000】即可获取更多免费资料!

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到