摘要:
Java并发机制的底层实现原理 1.volatile volatile相当于轻量级的synchronized,在并发编程中保证数据的可见性,使用 valotile 修饰的变量,其内存模型会增加一个 Lock 前缀,而这个前缀在多核处理器中带来的效果是: (1)会将处理器缓存行的数据回写到内存中; ( 阅读全文
摘要:
并发编程的挑战 并发编程的初衷是让程序运行的更快,但是更多的使用多线程真的会让程序变快吗? 1.线程上下文切换 关于线程上下文切换 多个线程在一个处理器里并不是同时进行的,而是非常快速地在线程之间进行切换着运行,所以可以更高效地使用到CPU的性能。 线程上下文切换的开销 然而在低运算量的时候,单线程 阅读全文
摘要:
慢查询日志 参考:https://www.cnblogs.com/saneri/p/6656161.html 查询是否开启慢查询日志: show variables like '%slow_query_log%'; 开启慢查询日志: set global slow_query_log=1; 查询慢查 阅读全文
摘要:
安装配置参考:https://blog.csdn.net/qq_31634461/article/details/79377256 概念学习参考:https://www.cnblogs.com/ityouknow/p/6120544.html RabbitMQ的hello world(基于Sprin 阅读全文
摘要:
一、Redis简介 redis是一个NoSQL,也就是非关系型数据库,以key-value的形式保存数据,它是基于内存保存数据的,所以存取数据的速度较SQL而言快很多,并且它是单线程的。 问:为什么Redis快? 1.单线程,减少上下文切换;2.操作内存;3.复用IO,非阻塞;4.特定的存储类型 复 阅读全文
摘要:
一、事务相关: 1.Spring事务基于Spring AOP切面编程; 2.AOP基于代理模式,得到需要开启事务的代码的代理对象; 3.而没有开启事务的Service方法里调用了开启事务 @Transactional 的方法时,整个代码是不会开启事务的,原理还是代理模式插入事务的依据是最外层的注解; 阅读全文
摘要:
Eureka简介 Eureka作为注册中心,管理各种服务功能包括服务的注册、发现、熔断、负载、降级等 Eureka注册中心实例 Eureka Server 1.pom文件配置SpringBoot、SpringCloud的依赖; 2.启动类配置 @EnableEurekaServer 注解,表示注册中 阅读全文
摘要:
共享锁和排他锁 1.共享锁: 读锁、X锁,在查询时生效,多个事务在查询同一个数据时共享一把锁,但是不能作用于修改数据,在select语句后添加 lock in share mode ; 2.排他锁:在insert、update和delete时生效,获取排他锁的事务在修改一条数据时,其他锁不能存在于这 阅读全文
摘要:
7.1JVM类加载机制 虚拟机把数据从Class文件加载到内存,并且校验、转换解析和初始化最终形成可以被虚拟机使用的Java类型,这就是虚拟机的类加载机制。 7.2类加载的时机 1.类加载的步骤开始的顺序: 加载(Loading) -> 验证(Verification) -> 准备(Preparat 阅读全文
摘要:
6.1 关于类文件 1.class文件的一次编译,到处运行的跨平台性; 2.JVM不止有跨平台性,还有跨语言性,不管是JRuby还是Groovy写出来的程序,只要编译出符合JVM规范的class文件就可以在JVM上运行; 6.2 类文件结构 PS:任何一个Class文件都对应一个类或者接口,但是一个 阅读全文