会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
CSGOPHER
博客园
首页
新随笔
联系
订阅
管理
随笔 - 28
文章 - 0
评论 - 5
阅读 -
10646
上一页
1
2
3
下一页
2021年10月24日
LinkedBlockingQueue出入队实现原理
摘要: 类图概述 由类图可以看出,L是单向链表实现的,有两个ReentrantLock实例用来控制元素入队和出队的原子性,takeLock用来控制只有一个线程可以从队头获取元素,putLock控制只有一个线程可以从队尾添加元素。notEmpty和notFull是条件变量,内部有条件队列用来存放进队和出队被阻
阅读全文
posted @ 2021-10-24 13:37 csgopher
阅读(126)
评论(0)
推荐(0)
2021年10月23日
《全脑演讲》部分读后感——假装自己可以,直到你真的可以
摘要: 为什么听众无法理解你的演讲 文斯视察工厂时,指着一台生产设备问:有没有这个设备的清洁记录? 工厂负责人赶紧解释:我和你说,事情是这样的,我们工厂内部的清洁流程是这样的...(省略一百字介绍)。 解释了很多,但就是没有正面回答问题。 文斯开了个玩笑,说:一个有或没有的问题,他们至少需要十分钟才能告诉我
阅读全文
posted @ 2021-10-23 16:44 csgopher
阅读(164)
评论(0)
推荐(0)
2021年10月20日
抽象同步队列AQS原理和实践
摘要: AQS简述 AQS是一个FIFO的双向队列,队列元素类型为Node(也就是Thread)。AQS有一个state属性,ReentrantLock可以用来便是当前线程获取锁的可重入次数;对于samaphore来说,state表示当前可用信号的个数;对于CountDownLatch,state表示计数器
阅读全文
posted @ 2021-10-20 23:02 csgopher
阅读(157)
评论(0)
推荐(0)
2021年10月17日
线程池原理与实践
摘要: JUC的线程池架构 1.Executor Executor是Java异步任务的执行者接口,目标是执行目标任务。Executor作为执行者角色,目的是提供一种将“任务提交者”与“任务执行者”分离的机制。它只有一个函数式方法: public interface Executor { void execu
阅读全文
posted @ 2021-10-17 19:10 csgopher
阅读(333)
评论(0)
推荐(0)
2021年10月16日
创建线程的4种方法和线程的生命周期
摘要: 线程的启动和运行 方法一:使用start()方法:用来启动一个线程,当调用start方法后,JVM会开启一个新线程执行用户定义的线程代码逻辑。 方法二:使用run()方法:作为线程代码逻辑的入口方法。run方法不是由用户程序来调用的,当调用start方法启动一个线程之后,只要线程获得了CPU执行时间
阅读全文
posted @ 2021-10-16 18:06 csgopher
阅读(405)
评论(0)
推荐(0)
2021年10月8日
如何保证接口的幂等性?
摘要: 幂等性是什么? 一次接口调用和多次接口调用都能得到与预期相符的结果。 怎么解决? 传统方法:代码增加前置判断,但是这样工作量太大了。 我们需要一种无侵入的幂等解决方案。 构建幂等表示通用的解决方案 幂等表设计 每次在请求头部放一个RequestId(保证唯一的),通过网关检查RequestId,幂等
阅读全文
posted @ 2021-10-08 23:22 csgopher
阅读(336)
评论(0)
推荐(0)
2021年10月7日
CMSGC-GCRoots-三色标记
摘要: CMS收集器的特点:追求最短的停顿时间。 CMS-Concurrent Mark Sweep 并发 标记 清除 标记垃圾的方式 标记清除:标记处需要回收的对象,标记完成后统一回收所有被标记的对象。 标记复制:将内存分为两块, 每次用一块。当一块内存用完时,将活着的对象复制到另一块上。 标记整理:让存
阅读全文
posted @ 2021-10-07 22:11 csgopher
阅读(254)
评论(0)
推荐(0)
缓存穿透,缓存击穿,缓存雪崩解决方法
摘要: 缓存穿透 缓存的目的是为了缓解 CPU 或者 I/O 的压力,譬如对数据库做缓存,大部分流量都从缓存中直接返回,只有缓存未能命中的数据请求才会流到数据库中,这样数据库压力自然就减小了。 如果查询的数据在数据库中根本不存在的话,缓存里自然也不会有, 这类请求的流量每次都不会命中,这种查询不存在数据的现
阅读全文
posted @ 2021-10-07 18:59 csgopher
阅读(568)
评论(0)
推荐(0)
2021年10月4日
分布式事务组件Seata
摘要: 介绍 一阶段:事务协调者通知每一个服务处理本地事务,每个服务开始处理但是不会提交事务,处理完毕后告知协调者。 二阶段:协调者收到所有服务的消息后通知他们提交事务。 重要角色 事务管理器(TM),决定什么时候全局提交or回滚。(司令官) 事务协调者(TC),负责通知命令的中间件seata-serv
阅读全文
posted @ 2021-10-04 21:11 csgopher
阅读(575)
评论(0)
推荐(0)
2021年10月2日
MySQL高可用架构-MMM、MHA、MGR、分库分表
摘要: 总结 MMM是是Perl语言开发的用于管理MySQL主主同步架构的工具包。主要作用:管理MySQL的主主复制拓扑,在主服务器失效时,进行主备切换和故障转移。 MMM缺点:故障切换可能会丢事务(主备使用半同步复制解决)。不支持GTID。社区不活跃。MMM无法完全的保证数据一致性,所以适用于对数据的一致
阅读全文
posted @ 2021-10-02 23:29 csgopher
阅读(2743)
评论(0)
推荐(0)
上一页
1
2
3
下一页
公告
昵称:
csgopher
园龄:
3年11个月
粉丝:
2
关注:
0
+加关注
<
2025年6月
>
日
一
二
三
四
五
六
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
最新随笔
1.微服务可用性之隔离限流降级
2.6.824-lab2-Raft简述
3.GO实现Redis:GO实现Redis集群(5)
4.GO实现Redis:GO实现Redis的AOF持久化(4)
5.GO实现Redis:GO实现内存数据库(3)
6.GO实现Redis:GO实现Redis协议解析器(2)
7.GO实现Redis:GO实现TCP服务器(1)
8.重复支付问题如何解决(悲观锁和乐观锁)
9.博客目录
10.ThreadLocal部分源码分析和应用场景
我的标签
MySQL
(2)
Java
(2)
hashmap
(1)
积分与排名
积分 - 13308
排名 - 102901
随笔分类
go-redis(5)
Java(9)
JVM(1)
MySQL(3)
Redis(6)
分布式(2)
书(1)
总览(1)
随笔档案
2023年3月(7)
2021年11月(1)
2021年10月(13)
2021年9月(7)
阅读排行榜
1. MySQL高可用架构-MMM、MHA、MGR、分库分表(2743)
2. 分布式事务组件Seata(575)
3. MySQL的本地事务、全局事务、分布式事务(575)
4. 缓存穿透,缓存击穿,缓存雪崩解决方法(568)
5. 重复支付问题如何解决(悲观锁和乐观锁)(557)
评论排行榜
1. GO实现Redis:GO实现Redis集群(5)(2)
2. ThreadLocal部分源码分析和应用场景(2)
3. 微服务可用性之隔离限流降级(1)
4. MySQL的本地事务、全局事务、分布式事务(1)
推荐排行榜
1. 微服务可用性之隔离限流降级(1)
2. GO实现Redis:GO实现Redis集群(5)(1)
最新评论
1. Re:GO实现Redis:GO实现Redis集群(5)
@Asakalan 有啥问题 可以私信( ̄▽ ̄)...
--csgopher
2. Re:GO实现Redis:GO实现Redis集群(5)
老哥写的真不错啊,能不能请教一下
--Asakalan
3. Re:微服务可用性之隔离限流降级
总结得到位
--proteinboy
4. Re:ThreadLocal部分源码分析
@Judykdnmc...
--BLLBL
5. Re:ThreadLocal部分源码分析
Hdhhf iskdj
--Judykdnmc
点击右上角即可分享
主题色彩