一枚10年+的老程序员,从PHPer转到Gopher。拥有多年的程序化广告业务系统研发经验。目前专注于go语言的实践学习和分享。关注 “Go学堂”公众号获取更多错误集锦系列文章.https://goxuetang.github.io
获得徽章 0
今天通过分析gin、iris和echo框架中的中间件实现,深入理解了中间件的运行模式和运行机制。解答了为什么在中间件中会有一条ctx.Next()代码的疑问。详情请查看:
xie.infoq.cn #码上掘金#
在Go1.18发布之前,没有泛型,那如果像解决函数针对不同类型进行复用问题,一般会有三种方案:通过接口参数并使用类型断言,或者使用反射。还有一种就是使用接口并通过具体类型进行实现接口方法。详情可参看:
mp.weixin.qq.com
Golang中的泛型使用三部曲:类型参数化、添加类型约束、类型实例化
今天看了数据竞争(data race)和竞争条件(race condition)。这两个都是在并发程序中产生的问题。数据竞争就是在多个并发程序中,对同一块内存进行访问,并至少有一个并发进程在对其进行写操作时,会让该块内存中的数据产生不确定性而产生的。
竞争条件的发生是在并发程序中,因为并发程序执行的时间或顺序不确定性,而造成同一块内存中的数据结果的不确定性 今天看了数据竞争(data race)和竞争条件(race condition)。这两个都是在并发程序中产生的问题。数据竞争就是在多个并发程序中,对同一块内存进行访问,并至少有一个并发进程在对其进行写操作时,会让该块内存中的数据产生不确定性而产生的。
竞争条件的发生是在并发程序中,因为并发程序执行的时间或顺序不确定性,而造成同一块内存中的数据结果的不确定性。
------ 渔夫子@「Go学堂」 最近在学习操作系统的虚拟内存的部分。其中一个重要思想就是“分”。先从一块完整的物理内存分给不同的进程,然后再抽象成虚拟内存空间,让每个进程都有一个自己独立的虚拟内存。在虚拟内存中由于空间的浪费再按“段”拆分。然后再按页拆分,页表比较大时,有分出来二级页表。 我是「Go学堂」的渔夫子,欢迎大家关注公众号
今天学习了Go module,对module的起源,创建以及版本升级都有了一个清晰的认识。详细可参考:
juejin.cn
今天学习了golang中nil通道的具体使用场景。通过利用nil通道阻塞的特定,可以将通道的监听从select中移除掉。真实棒。
juejin.cn
一次由redis的实时写入更改到批量写入的方法,竟然cpu的使用率降低了30%,真牛
juejin.cn
下一页