![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
lianyuanpiao
这个作者很懒,什么都没留下…
展开
-
rabbitmq修改mqtt协议端口
无原创 2022-10-19 09:04:35 · 930 阅读 · 0 评论 -
volatile有序性实例(禁止指令重排)
ublic class ReOrderTest { private static volatile int x = 0, y = 0; private static int a = 0, b = 0; public static void main(String[] args) throws InterruptedException{ System.out.println(System.nanoTime()); int i=0; .原创 2021-05-27 11:37:26 · 283 阅读 · 0 评论 -
多线程中的volatile和伪共享
伪共享 false sharing,顾名思义,“伪共享”就是“其实不是共享”。那什么是“共享”?多CPU同时访问同一块内存区域就是“共享”,就会产生冲突,需要控制协议来协调访问。会引起“共享”的最小内存区域大小就是一个cache line。因此,当两个以上CPU都要访问同一个cache line大小的内存区域时,就会引起冲突,这种情况就叫“共享”。但是,这种情况里面又包含了“其实不是共享”的“伪共享”情况。比如,两个处理器各要访问一个word,这两个word却存在于同一个cache line大小的区域里,这原创 2021-05-25 16:25:55 · 157 阅读 · 0 评论 -
java锁学习笔记
堆内存中对象存着三个模块:对象头,实例变量,填充数据 对象头:存储对象的hashcode,锁信息或分代年龄或GC标志,类型指针指向对象的类元数据,JVM通过这个指针确定该对象是 哪个类的实例信息 实例变量:存放类的属性数据信息,包括父类的属性信息 填充数据:由于虚拟机要求对象起始地址必须是8字节的整数倍。填充数据不是必须存在的,仅仅是为了字节对齐 当一个线程需要运行同步方法...原创 2019-05-16 16:37:17 · 131 阅读 · 0 评论 -
一文教你完成Spring MVC框架搭建步骤
1、创建工程,将Spring mvc相关的jar拷贝到lib文件夹 2、配置web.xml DispatcherServlet <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servle...原创 2019-05-16 20:35:39 · 173 阅读 · 0 评论