
golang
文章平均质量分 87
混血王子1996
这个作者很懒,什么都没留下…
展开
-
Golang三色标记、混合写屏障GC模式图文全分析
垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的对象,让出存储器资源,无需程序员手动执行。Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可并发运行,但需要一定时间的STW(stop the world),STW的过程中,CPU不执行用户代码,全部用于垃圾回收,这个过程的影响很大,Golang进行了多次的迭代优化来解决这个问题,本文将逐步推进Golang中GC的每次推进,来理解Gc的原理。...转载 2020-11-20 00:52:50 · 2735 阅读 · 3 评论 -
go接口之结构体实现和结构体指针实现
接口也是 Go 语言中的一种类型,它能够出现在变量的定义、函数的入参和返回值中并对它们进行约束,不过 Go 语言中有两种略微不同的接口,一种是带有一组方法的接口,另一种是不带任何方法的interface{}:图 4-7 Go 语言中的两种接口Go 语言使用iface结构体表示第一种接口,使用eface结构体表示第二种空接口,两种接口虽然都使用interface声明,但是由于后者在 Go 语言中非常常见,所以在实现时使用了特殊的类型。需要注意的是,与 C 语言中的void *...原创 2020-11-01 18:51:53 · 2817 阅读 · 0 评论 -
Golang中Context包深入浅出
转自 :https://www.jianshu.com/p/dcbd87eb1a3f控制并发有两种经典的方式,一种是WaitGroup,另外一种就是Context,今天我就谈谈Context。什么是WaitGroupWaitGroup以前我们在并发的时候介绍过,它是一种控制并发的方式,它的这种方式是控制多个goroutine同时完成。func main() { var wg sync.WaitGroup wg.Add(2) go func() { .转载 2020-05-15 16:13:56 · 333 阅读 · 0 评论 -
Golang设计模式
参考https://design-patterns.readthedocs.io/zh_CN/latest/index.html https://github.com/senghoo/golang-design-pattern设计模式 创建型模式 简单工厂模式( Simple Factory Pattern ) Golang实现 工厂方法模式(Fact...转载 2020-05-07 22:32:31 · 323 阅读 · 0 评论 -
【go小记】切片扩容策略
func growslice(et *_type, old slice, cap int) slice { newcap := old.cap doublecap := newcap + newcap if cap > doublecap { newcap = cap } else { if old.len < 1024 { newcap = doublecap...原创 2020-03-17 15:40:41 · 3641 阅读 · 0 评论 -
【golang笔记】 切片自定义排序
sort.Slice(b, func(i, j int)bool { return b[i] < b[j] })原创 2019-04-10 11:36:00 · 4846 阅读 · 0 评论 -
Centos No package golang available 报错处理
问题描述前两天用docker建了个虚拟机,试试在虚拟机安装go居然不行,原来是少装了这个在centos 上使用yum install 命令安装go时,报错“No package golang available”,经查证是缺少缺少EPEL(epel是社区强烈打造的免费开源发行软件包版本库,系统包含大概有1万多个软件包)解决过程安装epel(Extra Packages for En...转载 2019-04-11 14:43:54 · 1182 阅读 · 0 评论