java核心技术-多线程并发设计原理以及常见面试题
文章目录
- 写在前面
- 多线程回顾
- 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核心技术-多线程并发设计原理以及常见面试题相关推荐
- python 分类变量xgboost_XGBoost 原理 及 常见面试题
目录 预备知识:CART树 XGBoost思想 XGBoost目标函数 如何学习第 棵树 基于泰勒公式展开推导目标函数 寻找最佳树 结点分裂与停止生长 寻找最佳分裂点 对比GBDT 常见面试题 预备知 ...
- 多线程的实现方式_一文搞懂Java多线程使用方式、实现原理以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 夯实Java基础系列17:一文搞懂Java多线程使用方式、实现原理以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 使用线程锁(lock)实现线程同步_一文搞懂Java多线程使用方式、实现原理以及常见面试题...
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- 快速掌握kafka原理以及常见面试题
个人公众号『码农札记』,欢迎关注,查看更多精彩文章. 简介 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeepe ...
- Java并发API案例分析之并发设计原理
目录 0.插播2020CSDN博客之星投票新闻 一.开篇 二.并发与并行 三.并发程序带来关键问题 1.数据竞争 2.死锁 3.活锁 4.资源不足 5.优先权反转 四.Java并发API(详细) 1. ...
- 【Java并发编程(一)】并发设计原理
一.并发设计原理 1. 基本概念 1.1 并发和并行 1.2. 同步 同步方式有两种: 控制同步:当一个任务的开始依赖于另一个任务的结束时,第二个任务不能在第一个任务完成之前开始. 数据访问同步:当两 ...
- Java多线程常见面试题及答案汇总1000道(春招+秋招+社招)
Java多线程面试题以及答案整理[最新版]Java多线程高级面试题大全(2021版),发现网上很多Java多线程面试题都没有答案,所以花了很长时间搜集,本套Java多线程面试题大全,汇总了大量经典的J ...
- 【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习 面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.觉得内容不错 ...
最新文章
- 手机的秘密--按几个键就知道
- 在JAVA中使用MongoDB
- 如何组织公司的线下活动
- 谷歌新作gVisor:VM容器融合技术已经到来
- [詹兴致矩阵论习题参考解答]习题3.6
- python3环境下使用OpenGL和GLFW两种库进行编码
- boost::log模块实现将日志记录初始化到远程 syslog 服务器
- 四、规则组织的衍生组织——经向破斜组织数学模型的建立
- c语言做贪吃蛇vs2015,熬书几个月,终于编出简易的贪吃蛇了,VS2013
- Kafka相关面试真题整理( 持续更新... ... )
- python书籍推荐:Python数据科学手册
- 021-PHP常用的数值类型判断函数
- 1900页Python系列PPT分享五:函数设计与应用(134页)
- AngularJS 内置指令
- totolink 虚拟服务器,TOTOLINK无线中继设置教程(图文)
- 121、买卖股票的最佳时机(python)
- 标签系统 -- 用户画像
- 解决报错(4种情况):0x00007FF614F73B96 处(位于 XXX.exe 中)引发的异常: Microsoft C++ 异常: cv::Exception,位于内存位置 0x000XXX
- 匹配滤波器结合Matlab实现
- data: function () { return {}} ——你不应该在一个子组件内部改变 prop
热门文章
- 中两个数做减法_人生下半场,学会做减法
- 湖南工程学院+c语言程序设计人事档案管理系统,程序设计人事档案管理系统.doc...
- sap权限激活_sap角色权限设置手册V1.0
- 激光slam_机器人主流定位技术,激光SLAM与视觉SLAM谁更胜一筹
- python缺点这么多、为什么还流行_Python这么火,为什么说它不是未来的编程语言?...
- Linux ls常见的命令选项【转载】
- JAVA入门级教学之(abstract抽象类)
- java英文版怎么汉化_请问,java中,将下面的英文名字变为中文 该怎样输出?
- mysql 为数据表添加字段_MySQL数据表添加字段实例
- 手机浏览器网址_「效率集」自定义网址导航高级功能介绍