自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 多线程并发问题总结

多线程并发要保证安全需要满足可见性,有序性,原子性。在并发优化过程中会出现缓存一致,指令重排序等问题,在出现对应并发不安全问题时要如何处理? 首先看下并发优化演进过程: 多cpu之间有各自的缓存,在多线程环境,不同cpu之间的缓存会有缓存不一致的问题。这个问题不满足并发安全的可见性要求。操作系统可以通过总线锁和缓存一致性协议保证缓存一致性。 总线锁性能低。 缓存一致性协议有MESI、MOSI协议等,MESI表示缓存行的4中状态。 M:modify,修改状态。该缓存行数据有效,数据修改了,和内存中的

2021-09-12 19:45:50 214

原创 spring的bean的生命周期

spring的Bean的生命周期大体步骤 实例化容器 扫描类文件 解析某个类 实例化BeanDefinition,可以配置Lazy,Scope,dependOn,Class,beanName等 方式BeanDefinitionMap 调用实现了BeanFactoryPostProcesser方法。下面两个执行步骤都是在容器实例化之前。 先执行BeanDefinitionRegistryPostProcessor实现的postProcessBeanDefinitionRegistry方法,该方法可以获取到

2021-09-12 13:02:58 133

原创 Mybatis整合到spring原理

Mybatis整合到spring SqlSessionTemplate整合 spring提供SqlSessionTemplate类,用于在spring中注入该类实例进行sql操作。该类实现了SqlSession接口,直接调用sqlSession的方法用于执行sql,该类持有SqlSessionFactory类,每次执行方法都会创建新的sqlSession。 SqlSessionTemplate类结构如下图。其中SqlSessionInterceptor是内部动态代理类,sqlSessionProxy代理对

2021-09-12 11:54:51 123

原创 Mybatis执行过程

Mybatis提供了如下特性 使用连接池对连接进行管理。 SQL和代码分离,集中管理。 参数映射和动态SQL。 结果集映射。 缓存管理。 重复SQL提取<sql> 插件机制。 执行过程 执行过程图解,图片来自网络 执行过程文字描述 涉及的代码展示版本为Mybatis3.5.4 解析配置文件得到Configuration 解析配置文件,每个sql语句标签对应一个MappedStatement 每个namespace对应一个MappProxyFactory,存入MapperRestry中的

2021-09-11 21:45:38 258

原创 雪花算法-java实现

雪花算法用途 用来保证分布式环境生成ID唯一。 雪花算法实现 雪花算法用64位二进制表示,其中二进制位数作用划分为: 1bit:符号位,无使用 41bit:时间位,用于表示毫秒可以使用69年 10bit:机器位,用来区分不同的机器环境 12bit:序列位,用来表示同一毫秒的不同序列,同一毫秒的并发数。 上面位数划分不是固定的,可以自定义划分,如: 1bit:符号位,无使用 41bit:时间位,用于表示毫秒 5bit:机器位 7bit:业务位,用来区分不同业务 10bit:序列位 雪花算法实现注意事项

2021-06-22 17:32:02 898

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除