为 tunny 提交的一次 PR

在阅读 tunny 源码时,发现了由于 slice 缩容导致的内存泄漏问题。通过创建 PR,将缩容后的元素置为 nil,解决了这个问题。作者接受了这次修复,并鼓励大家在阅读开源项目时积极寻找并提交改进。
摘要由CSDN通过智能技术生成

背景

上周我写了一篇文章Go 每日一库之 ants,深入剖析了ants这个 goroutine 池的实现。在反复阅读了多遍panjf2000关于ants的起源的文章——GMP 并发调度器深度解析之手撸一个高性能 goroutine pool,我感觉收获满满。这篇文章对于理解 Go 的 goroutine 并发机制有很大的参考价值,强烈建议一读。然后我花了几个小时时间详细阅读了ants的源码,代码写的很棒,非常优美。而后我写了一遍文章分析了ants的源码,见ants源码赏析。在写介绍ants的文章和深入阅读源码过程中,网上的资料提及 Go 语言中 goroutine 池的实现,时常会带上tunny这个库。于是,我又去研究了tunny的源码,产出一篇文章Go 每日一库之 tunny。

在阅读tunny源码时,我发现有个方法的实现有些问题。我也在Go 每日一库之 tunny中也指出了:


原理

我们知道 slice 结构中有一个指向数组的指针。假设一开始tunny中有 5 个 worker,示意图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值