并发java面试总结 带答案

好文记录
锁:https://mp.weixin.qq.com/s/HgXbSBbyruEQXz42R46MEg
美团cf实战:https://tech.meituan.com/2022/05/12/principles-and-practices-of-completablefuture.html
美团线程池实战:https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html
Java 并发(进阶)
1. 什么是线程和进程?线程与进程的关系,区别及优缺点?
2. 为什么要使⽤多线程呢?
- 因为更多利用计算机资源,减少上下文切换

3. 什么是上下⽂切换?
- 线程的运行条件和状态,程序计数器,栈
- 多线程减少线程重启,减少上下文切换
- 思考:IO密集型上下文切换高vs.cpu密集型线程切换高

4. 什么是线程死锁?如何避免死锁?
- 两个线程获得了对方的资源,获取1等待2,一个获取2等待1。
- 破环任意一个四大原则,少资源,非抢占,静态分配,层次分配
- 静态分配:执行前获得所有他要的资源
- 层次分配:所有资源分成多个曾,只有获得低层才能获得高层

5. 乐观锁和悲观锁了解么?如何实现乐观锁?
- 略

6. 说说 sleep() ⽅法和 wait() ⽅法区别和共同点?
- wait时monitor lock,sleep是操作系统
- Thread.sleep(): 不是改变monitor lock,而是通过操作系统暂停线程。可以理解为谁执行这个方法谁就sleep。
- 再t2中执行t1.sleep()最终也会转为Thread.sleep(),还是t2被sleep了。

7. 讲⼀下 JMM(Java 内存模型)。 
- 一个开发需要遵守的规范
- a. 类似于cpu缓存,java有主内存和本地内存
- b. 关于重排序的happens-before原则

8. Java 内存区域和 JMM 有何区别?
- 内存区是物理分区,jmm是对编程的规范
9. happens-before 原则
- 要求禁止重排序,但
全部评论

相关推荐

暴杀流调参工作者:春招又试了一些岗位,现在投递很有意思,不仅要精心准备简历,投递官网还得把自己写的东西一条一条复制上去,阿里更是各个bu都有自己的官网,重复操作无数次,投完简历卡完学历了,又该写性格测评、能力测评,写完了又要写专业笔试,最近还有些公司搞了AI辅助编程笔试,有些还有AI面试,对着机器人话也听不明白录屏硬说,终于到了人工面试又要一二三四面,小组成员面主管面部门主管面hr面,次次都没出错机会,稍有不慎就是挂。 卡学历卡项目卡论文卡实习什么都卡,没有不卡的😂
点赞 评论 收藏
分享
04-01 11:08
中原工学院 Java
老六f:感觉这种培训期过了就找理由给你开了
点赞 评论 收藏
分享
评论
点赞
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务