文章目录

  • 写在前面
  • 多线程回顾
    • Thread和Runnable
      • 面试官:为什么我们在项目中推荐使用使用Runnable方法而不用继承Thread?
      • 面试官:Callable为什么可以带返回值,你知道底层原理?
      • 面试题:线程了解?给我讲讲线程的几种状态?
      • 面试题:你知道线程等待和阻塞的区别?
      • 面试官:给我讲讲线程的生命周期?
      • 面试官:如果我在代码种连续调用两次thread.start()会发生什么你知道?
    • synchronized
      • 声:居然我们学习到锁,给我讲讲锁的本质是什么?
      • 声:synchronized使用的几种方式?
        • 面试官:给我讲讲synchronized 实例锁(Synchronized)和类锁(Static Synchronized)有什么区别?
        • 面试官:给我讲讲锁是如何实现的?
      • monitor enter
      • monitor exit
        • 面试题:synchronized抛出异常是如何保证能正常释放锁?
      • 面试题:进入synchronized获取对象锁后,调用Thread.sleep()方法会释放锁资源?
    • wait和notify
      • 笔试题:如何用wait和notify实现生产者消费者模式?
      • 面试题:为什么wait()必须和synchronized一起使用?
      • 面试题:为什么Java要把wait()和notify()放在如此Object类里面,而不是像sleep放在Thread中呢?
      • 面试题:wait()的时候对象锁会释放锁?
      • 面试题:wait()和sleep()区别?
    • interruptedException和interrupt()方法
      • 声:什么情况下抛出InterruptedException
      • 面试官:给我说说轻量级阻塞和重量级阻塞
      • 声:你了解线程中断后线程复位和被动复位?
    • 声:如何优雅的关闭线程?
  • 并发核心概念
    • 并发与并行
    • 同步
      • 1.控制同步
      • 面试题:如何控制多个线程执行顺序:给你三个线程如何顺序打印数字?
      • 2.数据访问同步
    • 不可变对象
      • 面试官:String为什么设计成不可变对象?
    • 原子操作和原子变量
  • 并发问题
    • 面试官:多线程场景会出现哪些并发问题?你项目中是如何解决的?
    • 数据竞争
    • 死锁
      • 面试题:什么叫死锁?死锁必须满足哪些条件?如何定位死锁问题?有哪些解决死锁策略?
    • 活锁
    • 资源不足
  • JMM(java memory model)内存模型
    • 面试官:你知道JMM内存模型、java内存模型、jvm内存模型区别是什么?
      • 声:什么是JMM?
      • 我:听着还是好复杂呀,那什么是内存可见性?
      • 我:什么是原子操作,我们应该注意什么呢?
      • 我:什么是指令重排序
    • 面试官:给我讲讲jvm内存模型以及jdk1.7和1.8版本有何区别?
    • happen-before
      • as if serial(串行)语义
      • 面试官:什么是happen-before?
    • voliate关键字
    • final关键字

写在前面

这是第一次尝试用模拟对话体方式来叙述知识点,这样换种方式来做笔记使我印象更深刻,也希望使读者更容易理解(

java核心技术-多线程并发设计原理以及常见面试题相关推荐

  1. python 分类变量xgboost_XGBoost 原理 及 常见面试题

    目录 预备知识:CART树 XGBoost思想 XGBoost目标函数 如何学习第 棵树 基于泰勒公式展开推导目标函数 寻找最佳树 结点分裂与停止生长 寻找最佳分裂点 对比GBDT 常见面试题 预备知 ...

  2. 多线程的实现方式_一文搞懂Java多线程使用方式、实现原理以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  3. 夯实Java基础系列17:一文搞懂Java多线程使用方式、实现原理以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  4. 使用线程锁(lock)实现线程同步_一文搞懂Java多线程使用方式、实现原理以及常见面试题...

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  5. 快速掌握kafka原理以及常见面试题

    个人公众号『码农札记』,欢迎关注,查看更多精彩文章. 简介 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeepe ...

  6. Java并发API案例分析之并发设计原理

    目录 0.插播2020CSDN博客之星投票新闻 一.开篇 二.并发与并行 三.并发程序带来关键问题 1.数据竞争 2.死锁 3.活锁 4.资源不足 5.优先权反转 四.Java并发API(详细) 1. ...

  7. 【Java并发编程(一)】并发设计原理

    一.并发设计原理 1. 基本概念 1.1 并发和并行 1.2. 同步 同步方式有两种: 控制同步:当一个任务的开始依赖于另一个任务的结束时,第二个任务不能在第一个任务完成之前开始. 数据访问同步:当两 ...

  8. Java多线程常见面试题及答案汇总1000道(春招+秋招+社招)

    Java多线程面试题以及答案整理[最新版]Java多线程高级面试题大全(2021版),发现网上很多Java多线程面试题都没有答案,所以花了很长时间搜集,本套Java多线程面试题大全,汇总了大量经典的J ...

  9. 【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!

    本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习 面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.觉得内容不错 ...

最新文章

  1. 手机的秘密--按几个键就知道
  2. 在JAVA中使用MongoDB
  3. 如何组织公司的线下活动
  4. 谷歌新作gVisor:VM容器融合技术已经到来
  5. [詹兴致矩阵论习题参考解答]习题3.6
  6. python3环境下使用OpenGL和GLFW两种库进行编码
  7. boost::log模块实现将日志记录初始化到远程 syslog 服务器
  8. 四、规则组织的衍生组织——经向破斜组织数学模型的建立
  9. c语言做贪吃蛇vs2015,熬书几个月,终于编出简易的贪吃蛇了,VS2013
  10. Kafka相关面试真题整理( 持续更新... ... )
  11. python书籍推荐:Python数据科学手册
  12. 021-PHP常用的数值类型判断函数
  13. 1900页Python系列PPT分享五:函数设计与应用(134页)
  14. AngularJS 内置指令
  15. totolink 虚拟服务器,TOTOLINK无线中继设置教程(图文)
  16. 121、买卖股票的最佳时机(python)
  17. 标签系统 -- 用户画像
  18. 解决报错(4种情况):0x00007FF614F73B96 处(位于 XXX.exe 中)引发的异常: Microsoft C++ 异常: cv::Exception,位于内存位置 0x000XXX
  19. 匹配滤波器结合Matlab实现
  20. data: function () { return {}} ——你不应该在一个子组件内部改变 prop

热门文章

  1. 中两个数做减法_人生下半场,学会做减法
  2. 湖南工程学院+c语言程序设计人事档案管理系统,程序设计人事档案管理系统.doc...
  3. sap权限激活_sap角色权限设置手册V1.0
  4. 激光slam_机器人主流定位技术,激光SLAM与视觉SLAM谁更胜一筹
  5. python缺点这么多、为什么还流行_Python这么火,为什么说它不是未来的编程语言?...
  6. Linux ls常见的命令选项【转载】
  7. JAVA入门级教学之(abstract抽象类)
  8. java英文版怎么汉化_请问,java中,将下面的英文名字变为中文 该怎样输出?
  9. mysql 为数据表添加字段_MySQL数据表添加字段实例
  10. 手机浏览器网址_「效率集」自定义网址导航高级功能介绍