Go进阶—并发编程 Mutex

[转自:【Go进阶—并发编程】Mutex https://segmentfault.com/a/1190000041467918](https://segmentfault.com/a/1190000041467918 "【Go进阶—并发编程】Mutex") 总结来说,GO语言中mutex的两种模式(正常模式和饥饿模式)的主要区别在于对等待锁的goroutine的优先级处理上: 正常模

- 阅读全文 -

Golang垃圾回收(GC) 底层原理

参考链接: [Golang垃圾回收(GC)介绍 ](https://liangyaopei.github.io/2021/01/02/golang-gc-intro/ "Golang垃圾回收(GC)介绍") [刘丹冰Aceld Golang中GC回收机制三色标记与混合写屏障](https://www.bilibili.com/video/BV1wz4y1y7Kd?p=14&vd_sourc

- 阅读全文 -

如何判断golang变量是分配在栈(stack)上还是堆(heap)上?

Go这门语言抛弃了C/C++中的开发者管理内存的方式:主动申请与主动释放,增加了逃逸分析和GC,将开发者从内存管理中释放出来,让开发者有更多的精力去关注软件设计,而不是底层的内存问题。这是Go语言成为高生产力语言的原因之一。 ### 一、如何判断变量是分配在栈(stack)上还是堆(heap)上? Golang 中的变量只要被引用就一直会存活,存储在堆上还是栈上由内部实现决定而和具体的语法

- 阅读全文 -

Go语言如何高效的进行字符串拼接(6种方式进行对比分析)

本文讨论多个大字符串拼接时的性能对比 想看结论直接跳到文末即可: 大量字符串拼接的测试我们先构建一个长度为200的字符串切片: ``` var baseSlice []string for i := 0; i < 200; i++ { baseSlice = append(baseSlice, base) } ``` 然后遍历这个切片不断的进行拼接,因为

- 阅读全文 -

Docker 中 RUN、CMD 与 ENTRYPOINT 的区别

### 前言 在说 `CMD、RUN 和 ENTRYPOINT` 的区别前,先来说说 `Dockerfile`,Dockerfile 是构建[容器镜像](https://so.csdn.net/so/search?q=%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F&spm=1001.2101.3001.7020)的方式之一,其通过一系列的指令参数来完成镜像的构建,而

- 阅读全文 -