JVM 从入门到入土 ③:对象布局
关于对象面试题:
关于对象面试题:
内存数据放入高速缓存中时是以缓存行的形式放入的,多数情况把内存中连续的 64 字节的数据作为一个缓存行加入高速缓存,不会只单独放入几个字节的数据
伪共享问题: 位于同一缓存行的两个不同数据,被两个不同 CPU 锁定,产生互相影响的伪共享问题
缓存行对齐
1 | public class CacheLinePadding { |
缓存锁: MESI
【并发编程】MESI–CPU 缓存一致性协议
总线锁: 有些无法被缓存的数据或者跨越多个缓存行的数据还是得使用总线锁
线上
开发
Feature 分支做完后,必须合并回 Develop 分支
合并完分支后一般会删点这个 Feature 分支,但是也可以保留
概述: 基于 Develop 分支创建,用于测试,修改 Bug
创建: 一旦创建了 Release 分支之后,不要再从 Develop 分支上合并新的改动到 Release 分支
发布: 发布 Release 分支时,合并 Release 到 Master 和 Develop, 同时在 Master 分支上打个 Tag 记住 Release 版本号,然后删除 Release 分支
基于 Master 分支创建,开发完后需要合并回 Master 和 Develop 分支,同时在 Master 上打一个 tag
若有收获,就点个赞吧
src/main/resources/mybatis-config.xml:
1 | <?xml version="1.0" encoding="UTF-8" ?> |
概述:
Spring 提供了事务管理器的接口,具体实现由 ORM 框架提供
PlatformTransactionManager:事务管理器核⼼接⼝。提供标准
1 | public interface PlatformTransactionManager { |