![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 77
wunlie
这个作者很懒,什么都没留下…
展开
-
volatile
volatile volatile 保证共享变量的“可见性”,可见性就是当一个线程修改了共享变量时,另一个线程可以及时的读到共享变量修改后的值。 volatile是如何保证可见性的? 有被volatile修饰的共享变量在进行写操作时会多出一行汇编代码(Lock前缀的指令),该指令在多核处理器下会引发两件事情,1)在当前处理器缓存行的数据写回到主内存中;2)这个写操作会使其他CPU里面缓存的该内存地址的数据无效。 volatile为什么没有原子性? 例如你让一个v原创 2021-03-04 17:37:05 · 118 阅读 · 1 评论 -
Synchronized
SynchronizedSynchronized 是 Java 中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:原子性:确保线程互斥的访问同步代码;可见性:保证共享变量的修改能够及时可见,其实是通过 Java内存模型(JMM) 中的 “对一个变量unlock操作之前,必须要同步到主内存中;如果对一个变量进行lock操作,则将会清空工作内存中此变量的值,在使用此变量前,需要重新从主内存中 load 操作或 assign 操作初始化变量值” 来保原创 2021-03-04 17:31:51 · 196 阅读 · 1 评论 -
Rabbitmq学习笔记
1 什么是MQ**MQ(Message Queue) **: 是一种跨进程的通信机制, 用于上下游传递消息 . 在互联网架构中, MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务 .JMS(Java Message Server) : java 消息服务应用程序接口, 是一个java平台面向消息中间件的技术规范(API接口规范) .Amqp(Advanced Message Q...原创 2019-09-18 16:28:02 · 202 阅读 · 0 评论