一,操作系统原理
ALU是运算单元,PC是程序计数器,Registers寄存器存储运算的数据。L1级缓存,L2级缓存方便对数据进行访问。
携程面试问到volatile可见性的实现,其实是用volatile声明的变量如果被某一个线程修改,首先该值会更新到主存去,通过对读,写设置内存屏障,注意两点1、一旦完成写入,任何访问这个字段的线程将会得到最新的值。2、在写入前,保证所有之前发生的事已经发生,并且任何更新过的数据值也是可见的,因为内存屏障会把之前的写入值都刷新到缓存。这里JVM要求的实现比较严格,存储和存储,读取和读取之间都有内存屏障(实现内存屏障的方式可能是lock锁总线,可能是原语)

二,多线程高并发
1,synchronized
必须是可重入锁:为什么?
当一个子类对象获取了锁,在执行过程中需要调用该子类父类的synchronized方法,由于都要获取一个对象的锁,如果不能重入,就会导致死锁。
synchronized锁的是对象
synchronized锁定的方法和非锁定的方法相互执行不冲突
synchronized不要用String,Integer,Long这些类型

synchronized底层实现(Hotspot的实现)

  1. jdk早期的重量级锁 - 找os申请锁。
  2. 后期改进引入锁升级策略 - sync(obj),第一个线程来获取时,再Markword上记录线程ID(偏向锁,可重入的基础),若有线程争用,则升级为自旋锁,(循环尝试获取锁,尝试10次),10次之后升级为OS层面的锁

2,volatile
保证线程可见性:
MESI 缓存一致性协议保证不同CPU之间的缓存可见性

禁止指令重排序
双重校验锁中new的问题

Java进阶教程-马士兵相关推荐

  1. 2022年了Java架构师怎样进阶,马士兵老师给你答案

    苦于网络上充斥的各种java知识,多半是互相抄袭,导致很多后来者在学习java知识中味同嚼蜡,今天给大家推荐马士兵老师分享的进阶成为java架构师所必须掌握的核心知识点. 废话少说,直接上正题 1.多 ...

  2. 马士兵java框架_马士兵java架构师

    马士兵java架构师 开始讨论缓存之前,让我们先来讨论讨论另外一个问题:理论和实践.从ahuaxuan接触的程序员来看,有的程序员偏实践,有的程序员偏理论,但是这都是不好的行为,理论和实践同样重要,我 ...

  3. 马士兵java面向对象_马士兵JAVA零基础后端工程师

    马士兵JAVA零基础后端工程师 简介 Java的应用可以说是无处不在,从桌面办公应用到网络数据库等应用,从PC到嵌入式移动平台,从Java小应用程序(Applet)到架构庞大的J2EE企业级解决方案, ...

  4. Java注解和反射,Java教程马士兵全集

    public User() {}public User(String name, int id, int age) {this.name = name;this.id = id;this.age = ...

  5. B站2022保姆级Java进阶教程(一)Javaweb阶段

    No.1:Javaweb 学完web第一站就到了Javaweb这儿,web和Javaweb之间可是有很多相通的地方,想要做出一个合格的网页,web和Javaweb一个都不能少,但你真的做好准备学习Ja ...

  6. 马士兵坦克大战学习笔记(一)

    java初学者对于马士兵坦克大战的个人学习笔记及代码问题总结(第一阶段), 1.系统自动初始化了Graphics g参数 2.设计原则:高内聚,低耦合: 一个模块中的各元素之间的紧密程度越高,内聚性越 ...

  7. 马士兵java ppt_[马士兵JAVA教程课件.ppt

    [马士兵JAVA教程课件 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyri ...

  8. java视频马_【B0718】[java视频教程]某马2019年Java进阶课日志框架视频教程 it教程...

    Java视频教程名称:某马2019年Java进阶课日志框架视频教程      java自学网[javazx.com]  日志框架视频教程   it教程 Java自学网收集整理 java论坛' k&am ...

  9. Java高并发编程 (马士兵老师视频)笔记(一)同步器

    本篇主要总结同步器的相关例子:包括synchronized.volatile.原子变量类(AtomicXxx).CountDownLatch.ReentrantLock和ThreadLocal.还涉及 ...

最新文章

  1. 扩增子分析流程1. QIIME虚拟机安装配置及挂载外部目录
  2. 实操指南:用谷歌AutoML构建图像分类模型
  3. OSPF虚拟链路实验
  4. Java反射机制和动态代理实例
  5. NYOJ 679 贪婪的商店
  6. 用quot;hosting.jsonquot;配置ASP.NET Core站点的Hosting环境
  7. Java-Character String StringBuffer StringBuilder
  8. April 24, 17:30-20:00, 1479, Concentration-compactness/Rigidity method lecture 3 by Yang Lan
  9. CC创作共用版权协议,要求署名+非商业+相同方式共享
  10. adb命令查看手机电量_你们要的App电量分析测试来了
  11. 激光slam理论与实践
  12. 算法导论学习笔记13_贪心算法
  13. java文本框背景_Java 添加文本框到PPT幻灯片过程解析
  14. 2021年实现团队成功的4步绩效管理周期
  15. 第4章_1——SQL语句实现MySQL增删改查
  16. 小学计算机社团活动总结,小学科技社团活动总结
  17. 关于定时任务一个批次起止时间的算法设计与实现
  18. OSI 七层网络结构
  19. macOS Chrome无法访问自签名https页面问题的解决办法
  20. 今天,小灰36岁了!

热门文章

  1. JDBC数据库连接和事务的管理 一个JDBC基本操作封装类的编写
  2. xctf攻防世界 MISC高手进阶区 Banmabanma
  3. getPrepayId php,获取到 prepay_id 后将参数再次签名传输给 APP 发起支付
  4. 方维直播增加三级分销推广功能
  5. 如何把生活过程升级打怪?
  6. 【企业】避免华盛顿合作规律,增强有效合作
  7. windows2008修改3389端口
  8. 分享一个 Excel 做的三国杀 游戏 ,想学EXCEL的绝对受用。
  9. Android 监听手机旋转角度
  10. 软考笔记——5.2网络安全技术