• 史上最全Java多线程面试题及答案


    image

    多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域。所以,学好多线程并发编程对Java程序员来来说极其重要的。下面小编整理了60道最常见的Java多线程面试题及答案,供你学习或者面试参考。

    1. 多线程有什么用?

    2. 线程和进程的区别是什么?

    3. ava实现线程有哪几种方式?

    4. 启动线程方法start()和run()有什么区别?

    5. 怎么终止一个线程?如何优雅地终止线程?

    6. 一个线程的生命周期有哪几种状态?它们之间如何流转的?

    7. 线程中的wait()和sleep()方法有什么区别?

    8. 多线程同步有哪几种方法?

    9. 什么是死锁?如何避免死锁?

    10. 多线程之间如何进行通信?

    11. 线程怎样拿到返回结果?

    12. violatile关键字的作用?

    13. 新建T1、T2、T3三个线程,如何保证它们按顺序执行?

    14. 怎么控制同一时间只有3个线程运行?

    15. 为什么要使用线程池?

    16. 常用的几种线程池并讲讲其中的工作原理。

    17. 线程池启动线程submit()和execute()方法有什么不同?

    18. CyclicBarrier和CountDownLatch的区别?

    19. 什么是活锁、饥饿、无锁、死锁?

    20. 什么是原子性、可见性、有序性?

    21. 什么是守护线程?有什么用?

    22. 怎么中断一个线程?如何保证中断业务不影响?

    23. 一个线程运行时发生异常会怎样?

    24. 什么是重入锁?

    25. Synchronized有哪几种用法?

    26. Fork/Join框架是干什么的?

    27. 线程数过多会造成什么异常?

    28. 说说线程安全的和不安全的集合。

    29. 什么是CAS算法?在多线程中有哪些应用。

    30. 怎么检测一个线程是否拥有锁?

    31. Jdk中排查多线程问题用什么命令?

    32. 线程同步需要注意什么?

    33. 线程wait()方法使用有什么前提?

    34. Fork/Join框架使用有哪些要注意的地方?

    35. 线程之间如何传递数据?

    36. 保证”可见性”有哪几种方式?

    37. 说几个常用的Lock接口实现锁。

    38. ThreadLocal是什么?有什么应用场景?

    39. ReadWriteLock有什么用?

    40. FutureTask是什么?

    41. 怎么唤醒一个阻塞的线程?

    42. 不可变对象对多线程有什么帮助?

    43. 多线程上下文切换是什么意思?

    44. Java中用到了什么线程调度算法?

    45. Thread.sleep(0)的作用是什么?

    46. Java内存模型是什么,哪些区域是线程共享的,哪些是不共享的

    47. 什么是乐观锁和悲观锁?

    48. Hashtable的size()方法为什么要做同步?

    49. 同步方法和同步块,哪种更好?

    50. 什么是自旋锁?

    51. Runnable和Thread用哪个好?

    52. Java中notify和notifyAll有什么区别?

    53. 为什么wait/notify/notifyAll这些方法不在thread类里面?

    54. 为什么wait和notify方法要在同步块中调用?

    55. 为什么你应该在循环中检查等待条件?

    56. Java中堆和栈有什么不同?

    57. 你如何在Java中获取线程堆栈?

    58. 如何创建线程安全的单例模式?

    59. 什么是阻塞式方法?

    60. 提交任务时线程池队列已满会时发会生什么?

    答案整理

    关注下面的微信公众号,在里面回复:面试题答案

    推荐阅读

    干货:2TB架构师四阶段视频教程

    面经:史上最全Java多线程面试题及答案

    面经:史上最全阿里高级Java面试题

    面经:史上最全Spring面试题

    教程:最全Spring Boot全套视频教程

    书籍:进阶Java架构师必看的15本书

    工具:推荐一款在线创作流程图、思维导图软件

    分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。

  • 相关阅读:
    Git之常用的命令操作
    Linux之创建777权限的文件
    Mysql union
    读取MySQL数据表字段信息
    Linux下mysql启动失败
    TP5之使用layui分页样式
    使用Bootstrap实现表格列的显示与隐藏
    MySQL之避免插入重复数据
    Linux命令之清空当前文件
    opensns入门
  • 原文地址:https://www.cnblogs.com/java-stack/p/11952632.html
Copyright © 2020-2023  润新知