自定义博客皮肤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 184

原创 spring的bean的生命周期

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

2021-09-12 13:02:58 112

原创 Mybatis整合到spring原理

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

2021-09-12 11:54:51 102

原创 Mybatis执行过程

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

2021-09-11 21:45:38 234

原创 雪花算法-java实现

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

2021-06-22 17:32:02 854

空空如也

空空如也

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

TA关注的人

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