首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
架构染色
掘友等级
架构师
Just Design & Code
获得徽章 15
动态
文章
专栏
沸点
收藏集
关注
作品
赞
1K
文章 1K
沸点 3
赞
1K
返回
|
搜索文章
最新
热门
Seata AT模式:MySQL自增ID的场景下个人推荐使用 useGeneratedKeys
从Seata AT模式相关源码梳理可知,MySQL自增ID的场景下推荐使用 useGeneratedKeys
Seata AT模式+TDDL:排查构建Insert操作的afterImage时执行SELECT LAST_INSERT_ID()报错
构建Insert操作的afterImage要获取自增ID,复用insert的PreparedStatement通过SELECT LAST_INSERT_ID()获取时遇到一些问题,梳理清楚以制定方案
Mybatis 中如何使用 useGeneratedKeys 获取自增主键
mybats中通过将useGeneratedKeys设置为true,进行INSERT操作后,数据库自动生成的主键会填充到 Java实体属性中,我们可以从Java实体属性中获得数据库自动生成的主键ID。
NIO-内存映射文件-理论篇
内存映射文件是一种允许程序直接从内存访问的特殊文件。通过将整个文件或者文件的一部分映射到内存中、操作系统负责获取页面请求和写入文件,应用程序就只需要处理内存数据,这样可以实现非常快速的 IO 操作。
遵循Happens-Before规则来保证可见性|而非掌握所有底层
基于JSR -133内存模型提出了happens-before的概念,通过这个概念来阐述操作之间的内存可见性。要保证可见性,就是遵守 Happens-Before 规则,合理的使用java提供的工具。
SkyWalking 拓扑功能的性能优化
1. 增加查询的并行度,减少串行耗时。 2. 规避无效查询的触发,避免带来额外消耗。 3. 提升分片检索的命中,缩小检索分片数
Java版管程:Synchronized
同步机制中有经典的管程方案,管程其实就是对共享变量以及其操作的封装: 1. 将共享资源封装起来,对外提供操作这些共享资源的方法。 2. 线程只能通过调用管程中的方法来间接地访问管程中的共享资源
避免重排序之使用 Volatile 关键字
volatile 关键字本身就包含了禁止指令重排序的语义,仅保证赋值过程的原子性,保障变量的可见性,但不具备排它性
运行期重排序:内存系统的重排序
CPU提供内存屏障指令,来解决内存系重排序。读屏障清空本地的invalidate queue保证之前的所有load都已经生效;写屏障清空本地的store buffer,使得之前的所有store操作生效
原来了解重排序是为了掌握可见性的保障
导致可见性的原因有很多 1. 为了提升性能而实施的编译期重排序。 2. 数据在寄存器中。 3. cpu缓存的更改未同步到主内存中 或 内存中的更改未同步到cpu缓存(运行期重排序)。
下一页
个人成就
2022年度人气作者No.30
优秀创作者
文章被点赞
3,237
文章被阅读
204,968
掘力值
10,776
关注了
75
关注者
623
收藏集
5
关注标签
3
加入于
2021-01-30