tydhot
码龄8年
求更新 关注
提问 私信
  • 博客:347,581
    347,581
    总访问量
  • 176
    原创
  • 90
    粉丝
  • 0
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
目前就职: 杭州笨马网络技术有限公司
加入CSDN时间: 2017-09-20

个人简介:gogogo

博客简介:

不说话装高手

博客描述:
wx:tydhot GitHub:https://github.com/tydhot
查看详细资料
个人成就
  • 获得60次点赞
  • 内容获得56次评论
  • 获得195次收藏
  • 博客总排名1,537,244名
创作历程
  • 5篇
    2021年
  • 36篇
    2020年
  • 56篇
    2019年
  • 52篇
    2018年
  • 27篇
    2017年
成就勋章
TA的专栏
  • java-go
    4篇
  • sentinel
    3篇
  • caffeine
    6篇
  • jdk
    23篇
  • spring
    2篇
  • spark
    27篇
  • 算法题
    17篇
  • disruptor
    2篇
  • elasticsearch
    3篇
  • redis
    9篇
  • flink
    13篇
  • erlang
    4篇
  • RocketMQ
    12篇
  • light task schedule
    1篇
  • maven
    1篇
  • elasticjob
    1篇
  • scala
    3篇
  • hibernate
    3篇
  • golang
    2篇
  • ribbon
    2篇
  • dubbo
    8篇
  • consul
    1篇
  • sleuth
    1篇
  • feign
    1篇
  • zookeeper
    1篇
  • quatz
    1篇
  • mybatis
    3篇
  • jstorm
    1篇
  • netty
    14篇
  • drools
    1篇
  • akka
    3篇
  • kafka
    4篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

Claude Code 开发者创客大赛: AI 编程实战征文计划

随着 Claude Code 的爆火,AI 编程助手正在彻底改变开发者的工作流。它不仅能自动补全代码、优化算法,还能理解复杂需求并生成高质量脚本。 为探索 Claude Code 的潜力,CSDN 发起本次征文活动,邀请开发者分享实战经验、创新案例和技术思考,共同推动 AI 编程的普及与进化。 --- **创作主题**:用 Claude Code 重新定义编程效率 **创作方向**(供参考,鼓励自由发挥) **1. 效率革命:Claude Code 如何提升开发效率** - 对比传统编程 vs. Claude Code 辅助编程的耗时差异 - 实际项目中的效率提升案例(如快速生成 API、自动化脚本等) **2. 技术深挖:Claude Code 的高级用法** - 如何编写精准的 Prompt 让 Claude Code 生成更符合需求的代码 - 结合特定语言(Python/JS/Go等)的实战技巧 - 调试与优化 Claude Code 生成代码的方法 **3. 跨界融合:Claude Code 的创意应用** - 用 Claude Code 生成游戏逻辑、艺术代码(如 Processing 创意编程) - 结合低代码平台(如 Appsmith、Retool)快速搭建工具 - 在数据分析、爬虫、DevOps 等领域的落地案例 **4. 硬核挑战:用 Claude Code 完成一个完整项目** - 从零开始,仅依赖 Claude Code 开发一个小型应用(需附代码仓库和效果演示) - 记录开发过程中的思考、踩坑与解决方案 **5. 未来之辩:AI 编程的边界与伦理** - Claude Code 会取代程序员吗?职业发展的应对策略

117人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

golang sync.map

在golang中,线程安全的map实现为sync.Map,相较于java中线程安全的map ConcurrentHashMap,在设计与实现上都有巨大的差别。java中的ConcurrentHashMapjava中的ConcurrentHashMap为了实现线程安全,在1.7当中,通过分段锁的实现达到了这一目的,区别于HashTable的全部阻塞操作,分段锁的设计在一定程度上提升了在并发场景下的访问性能。在1.8的过程中,锁的粒度被进一步降低,被缩小到了一个HashEntry首节点的地步,并通过在一定长
原创
博文更新于 2021.06.29 ·
777 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Golang sync.pool对象池

概览Goalng中通过sync.pool提供了对象池的实现来达到对象复用的目的。在netty中,也通过Recycle类实现了类似的对象池实现。在netty的对象池Recycle中,当A线程需要将B线程申请的对象回收到对象池中的时候,会专门开辟一个专门由A线程回收到B线程的队列,以避免回收对象的时候所发生的资源竞争。类似的,在golang的对象池sync.pool中也是通过类似的思想来实现所要达到的目的。sync.pool的结构type Pool struct { noCopy noCopy //
原创
博文更新于 2021.06.29 ·
839 阅读 ·
1 点赞 ·
2 评论 ·
0 收藏

Golang heap源码简单走读

golang heap小根堆源码走读heap概览在golang中,通过heap给出了一个实现小根堆的接口。type Interface interface { sort.Interface Push(x interface{}) Pop() interface{} }由于小根堆中,需要根据容器中的元素大小来进行比较以确定元素在堆中的位置。因此也需要实现sort的接口。type Interface interface { Len() int Less(i, j int) bool
原创
博文更新于 2021.06.10 ·
578 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Golang list双向链表源码走读

list概览list为golang中的双向链表实现,存入list中的元素都会被封装成list中的节点放到双向链表中进行存储。简单的list使用代码如下:func main() { list := list.New() fmt.Println("list length is " + strconv.Itoa(list.Len())) list.PushBack(1) list.PushBack(2) list.PushBack(3) fmt.Println("list length is
原创
博文更新于 2021.06.08 ·
321 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Sentinel 中限流算法的实现

本文的github地址点击这里Sentinel 中漏桶算法的实现Sentinel 中漏桶算法通过 RateLimiterController 来实现,在漏桶算法中,会记录上一个请求的到达时间,如果新到达的请求与上一次到达的请求之间的时间差小于限流配置所规定的最小时间,新到达的请求将会排队等待规定的最小间隔到达,或是直接失败。@Overridepublic boolean canPass(Node node, int acquireCount, boolean prioritized) { i
原创
博文更新于 2021.01.24 ·
1415 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

Sentinel底层LongAdder的计数实现

本文的github地址LongAdder 的原理在 LongAdder 中,底层通过多个数值进行累加来得到最后的结果。当多个线程对同一个 LongAdder 进行更新的时候,将会对这一些列的集合进行动态更新,以避免多线程之间的资源竞争。当需要得到 LongAdder 的具体的值的时候,将会将一系列的值进行求和作为最后的结果。在高并发的竞争下进行类似指标数据的收集的时候,LongAdder 通常会和 AtomicLong 进行比较,在低竞争的场景下,两者有着相似的性能表现。而当在高并发竞争的场景下,Lo
原创
博文更新于 2020.12.31 ·
442 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

threadlocal的set()方法中的内存回收

ThreadLocal在执行set()方法的时候,实际执行set()逻辑的是其内部类ThreadLocalMap。private void set(ThreadLocal<?> key, Object value) { Entry[] tab = table; int len = tab.length; int i = key.threadLocalHa...
原创
博文更新于 2020.05.02 ·
1714 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

RocketMQ源码解析-Consumer启动(2)

接着上文的Pull消费者启动继续讲。public void start() throws MQClientException { switch (this.serviceState) { case CREATE_JUST: this.serviceState = ServiceState.START_FAILED; t...
原创
博文更新于 2019.01.10 ·
893 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

一个简单的Kafka Flink Rabbitmq Demo

https://github.com/tydhot/Kafka-Flink-Rabbitmq-Demo
原创
博文更新于 2019.02.11 ·
2035 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Quartz的定时任务实现

Quartz中管理定时任务的Scheduler对应一个QuartzScheduler,其中,负责管理定时任务的线程QuartzSchedulerThread也在其构造方法中被启动。public QuartzScheduler(QuartzSchedulerResources resources, long idleWaitTime, @Deprecated long dbRetryInter...
原创
博文更新于 2019.01.10 ·
40447 阅读 ·
6 点赞 ·
1 评论 ·
20 收藏

Dubbo消费者代理的创建

在消费者端,dubbo通过AnnotationBean类实现了BeanPostProcessor接口用来对beanFactory的中bean进行相应的处理。关于消费者的bean以及bean中@Reference注解的处理在AnnotationBean的postProcessBeforeInitialization()方法当中。对于bean中采用了@Reference注解的属性的处理在下面这...
原创
博文更新于 2019.01.10 ·
800 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java1.7ConcurrentHashMap类源码解析

先来看ConcurrentHashMap类的成员。static final int DEFAULT_INITIAL_CAPACITY = 16;static final float DEFAULT_LOAD_FACTOR = 0.75f;static final int DEFAULT_CONCURRENCY_LEVEL = 16;static final int MAXI...
原创
博文更新于 2019.07.14 ·
534 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

spark的TimSort排序算法实现

Spark版本2.4.0。Spark中的排序实现也是通过TimSort类实现,实现具体方式与JDK略有区别。具体实现,在TimSort类的sort()方法的sort()方法中。if (nRemaining < MIN_MERGE) { int initRunLen = countRunAndMakeAscending(a, lo, hi, c); binar...
原创
博文更新于 2019.08.18 ·
816 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

sentinel 时间窗口的实现

本文的github地址点击这里获取时间窗口的主要流程在 Sentinel 中,主要是通过 LeapArray 类来实现滑动时间窗口的实现和选择。在 sentinel 的这个获取时间窗口并为时间窗口添加指标的过程中,主要的流程为:根据当前时间选择当前时间应该定位当前时间应该属于的时间窗口 id。根据时间窗口 id 获取时间窗口。这里可能会存在三种情况:时间窗口还未建立,那么将会为此次流量的进入建立一个新的时间窗口返回,并且接下来这个时间窗口内的获取请求都将返回该窗口。时间窗口已经建立的情况下
原创
博文更新于 2020.12.10 ·
829 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Netty技术细节源码分析-内存池之PoolChunk设计与实现

该文所涉及的netty源码版本为4.1.16。在一开始需要明确的几个概念在Netty的内存池的PoolChunk中,先要明确以下几个概念。page: page是chunk中所能申请到的最小内存单位。chunk: 一个chunk是一组page的集合在PoolChunk中,chunkSize的大小是2maxOrder*pageSize,其中2maxOrder是PoolChunk中的完全二叉树叶子结点的数量,pageSize则是单个page的大小。综合如上所述,举一个数字上的例子,默认情况下,单个
原创
博文更新于 2020.10.18 ·
569 阅读 ·
0 点赞 ·
2 评论 ·
2 收藏

Netty技术细节源码分析-ByteBuf的内存泄漏原因与检测

该文所涉及的netty源码版本为4.1.6。Netty中的ByteBuf为什么会发生内存泄漏在Netty中,ByetBuf并不是只采用可达性分析来对ByteBuf底层的byte[]数组来进行垃圾回收,而同时采用引用计数法来进行回收,来保证堆外内存的准确时机的释放。在每个ByteBuf中都维护着一个refCnt用来对ByteBuf的被引用数进行记录,当ByteBuf的retain()方法被调用时,将会增加refCnt的计数,而其release()方法被调用时将会减少其被引用数计数。private bo
原创
博文更新于 2020.10.09 ·
1122 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Netty技术细节源码分析-HashedWheelTimer时间轮原理分析

本文是该篇的修正版本文的github地址:点此该文所涉及的netty源码版本为4.1.6。Netty时间轮HashedWheelTimer是什么Netty的时间轮HashedWheelTimer给出了一个粗略的定时器实现,之所以称之为粗略的实现是因为该时间轮并没有严格的准时执行定时任务,而是在每隔一个时间间隔之后的时间节点执行,并执行当前时间节点之前到期的定时任务。当然具体的定时任务的时间执行精度可以通过调节HashedWheelTimer构造方法的时间间隔的大小来进行调节,在大多数网络应用的情况下
原创
博文更新于 2020.10.08 ·
864 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

netty ByteBuf对象池和内存泄漏检测实现走读

ByteBuf存放在堆外内存中,采用引用计数法的方式进行内存回收,具体的实现在AbstractReferenceCountByteBuf中。private static final AtomicIntegerFieldUpdater<AbstractReferenceCountedByteBuf> refCntUpdater;static { AtomicIntegerFieldUpdater<AbstractReferenceCountedByteBuf> up
原创
博文更新于 2020.10.08 ·
403 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Netty技术细节源码分析-MpscLinkedQueue队列原理分析

本文的github地址:点此该文所涉及的netty源码版本为4.1.6。MpscLinkedQueue是什么在Netty的核心中的核心成员NioEventLoop中,其中任务队列的实现taskQueue便是MpscLinkedQueue。MpscLinkedQueue是Netty所实现的一个基于多生产者单消费者的无锁队列,针对NioEventLoop中任务队列的特点,其单消费者的场景在一开始就避免了从队列中取数据时加锁的必要,而其最精妙的地方便是在多生产者并发从队列中添加数据的时候也没有加锁,达到Ne
原创
博文更新于 2020.09.13 ·
539 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Netty技术细节源码分析-Recycler对象池原理分析

本文是该篇的修正版本文的github地址:点此该文所涉及的netty源码版本为4.1.6。Netty的对象池Recycler是什么Recycler是Netty中基于ThreadLocal的轻量化的对象池实现。既然是基于ThreadLocal,那么就可以将其理解为当前线程在通过对象池Recycler得到一个对象之后,在回收对象的时候,不需要将其销毁,而是放回到该线程的对象池中即可,在该线程下一次用到该对象的时候,不需要重新申请空间创建,而是直接重新从对象池中获取。Recycler在netty中被如何
原创
博文更新于 2020.09.13 ·
427 阅读 ·
1 点赞 ·
2 评论 ·
3 收藏
加载更多