多线程高并发
文章平均质量分 73
多线程高并发深入讲解
小涂学编程
这个作者很懒,什么都没留下…
展开
-
多线程与高并发
多线程与高并发一、CPU的高速缓存架构二、缓存一致性协议三、JMM原创 2023-04-28 22:49:11 · 82 阅读 · 1 评论 -
《多线程高并发二》缓存一致性协议
将被修改的数据副本失效的这种方式,有个专业的术语,叫做“写无效”(Write-invalidate),基于“写无效”实现的缓存一致性协议,叫做“写无效”协议,常见的 MSI、MESI、MOSI、MOESI 和 MESIF 协议都属于这一类。,并不适合作为小型的系统的缓存一致性解决方案,小型系统更多的是用基于总线嗅探的缓存一致性协议(这个策略,本质上就是把所有的读写请求都通过总线(Bus)广播给所有的 CPU 核心,然后让各个核心去“嗅探”这些请求,再根据本地的情况进行响应)缓存的状态是S,也就是共享的。原创 2023-04-28 22:48:20 · 482 阅读 · 0 评论 -
《多线程高并发三》JMM
JMM 是一个虚拟的内存模型,它抽象了 JVM 的运行机制,让 Java 开发人员能更好的理解 JVM 的运行机制,它封装了 CPU 底层的实现,让 Java 的开发人员可以更好的进行开发,不被底层的实现细节折磨。JMM 想表达的是,在某种程度上,你可以通过一些 Java 关键字让 Java 的内存模型达到一种强一致性。所以JMM 和缓存一致性协议并不挂钩,本质上就没什么联系。学习缓存一致性协议的时候,多CPU内线程共享的资源是通过MESI协议进行数据一致性的。Java内存的线程是如何进行一致性呢!!原创 2023-04-28 22:47:25 · 198 阅读 · 0 评论 -
《多线程高并发一》CPU的高速缓存架构
当使用一个程序,程序从硬盘中加载到内存当中,然后CPU将程序中的下一条指令地址读取到PC中,然后将相关数据存储到Registers(寄存器)中PC (Program Counter 程序计数器):记录这一个地址存放下一条执行的指令在哪里,cpu执行完一条就去内存取下一条。Register寄存器: 执行指令中的数据放到CPU执行,存储数据的就是寄存器ALU(Arithmetic Logic Unit)运算单元: 数据放到寄存器之后使用运算单元alu来运算,运算完写回到寄存器,寄存器再写回到内存里面去。原创 2023-04-28 22:47:28 · 675 阅读 · 0 评论