1.请谈谈你对volatile的理解

Scroll Down

预备知识

image

请谈谈你对volatile的理解

  • 1.volatile是Java虚拟机提供的轻量级的同步机制

    • 1.1 保证可见性
    • 1.2 不保证原子性
    • 1.3 禁止指令重排
  • 2.JMM你谈谈(线程安全性获得保证)

image-1662425912756

  • 2.1 可见性

    image-1662425929444

  • 2.2 原子性

    image-1662425957864
    image-1662425979308
    image-1662425992599
    image-1662426000985

  • 2.3 VolatileDemo代码演示可见性+原子性代码

  • 2.4 有序性

    指令重排类比:高考时答卷子,不一定按试题顺序做,先做简单,再做复杂的

    image-1662426033706
    image-1662426054163
    image-1662426064324
    image-1662426078265
    image-1662426100036
    image-1662426113350
    image-1662426122665

  • 3.你在哪些地方用到过volatile?

    image-1662426156888

彩蛋

  • 1.什么是JUC
    java.util.concurrent

  • 2.并发与并行

    • 并发:秒杀(多个线程去访问同一个资源)
    • 并行:泡面(一边烧热水,一边倒调料),写论文(一边听音乐,一边写论文)
  • 3.JMM与JVM

    • JMM(Java Memory Model,Java内存模型)
    • JVM(Java Virtual Machine,Java虚拟机)
  • 4.系统分类

  • 高并发/单机版/分布式

  • 5.CPU-Z软件

    看处理器和缓存

    image-1662426177937

    image-1662426189030

  • 6.硬件读取速度

    硬盘<内存<CPU

    在内存和CPU之间,还有一层缓存cache

  • 7.工作内存与主内存

    image-1662426204563

如上是t1,t2,t3三个线程分别读取age=25,然后t1修改age=37,t2和t3立即知道t1修改了age,这就是JMM的可见性

  • 8.学习三把斧(另一位老师方法论:目标,思路,代码)

    • 理论
    • 代码
    • 小总结
  • 9.idea 模板,以创建线程为例【idea模板化编程要掌握】

    image-1662426221938

  • 10.idea快捷键

    1) tsleep回车【应该得配置】

    1. ctrl+alt+m抽取方法

    3)forthread10(其实也是模板)

    image-1662426234345

    4)10.for回车

  • 11.idea查看字节码(汇编指令)

    image-1662426276874

配置参考

image-1662426298972

  • 12.API调用工程师 vs 增删改查程序员

  • 13.大道至简(越是朴素的道理越是整理,越是复杂说明还不成熟)

  • 14.视频中出现的思维导图:2019互联网面试题第2季.mmap 可以百度搜索到