Go面试专题
文章平均质量分 87
面向大厂的Golang语言基础专题
我是小道哥
大家好,我是小道哥。目前就职于字节跳动,此博客专注为大家分享后端技术的面试指南与个人成长心得。欢迎大家关注我一起探讨交流。
展开
-
Go面试题(六):一文弄懂 Golang GC、三色标记、混合写屏障机制【图文解析GC】
面试官上来就让讲Golang GC, 我道袍一挥,气定神闲,还好提前准备了,把三色标记法,屏障机制等信手拈来,把面试官镇住了.....原创 2021-12-12 17:05:48 · 3413 阅读 · 20 评论 -
Go面试题(五):图解 Golang Channel 的底层原理
大家好,我是小道哥。今天给大家带来的面试专题是:Golang Channelchannel的底层数据结构channel是golang中用来实现多个goroutine通信的管道,它的底层是一个叫做hchan的结构体。在go的runtime包下。数据结构type hchan struct { //channel分为无缓冲和有缓冲两种。 //对于有缓冲的channel存储数据,借助的是如下循环数组的结构 qcount uint // 循环数组中的元素数量 dataqs原创 2021-12-04 09:46:21 · 2734 阅读 · 0 评论 -
Go面试题(四):锁的实现原理--sync.RWMutex 篇
Go面试题(四):锁的实现原理–sync.RWMutex 篇大家好,我是小道哥。上一篇为大家介绍了Go中的sync.Mutex互斥锁的数据结构及实现原理,今天继续为大家介绍另外一种常用的锁,那就是sync.RWMutex读写锁。读写锁的使用读写互斥锁sync.RWMutex不限制对资源的并发读,但是读写,写写操作无法并行执行。读写锁一共有四个函数:RLock(): 申请读锁RUnlock(): 解除读锁Lock(): 申请写锁Unlock(): 解除写锁实现原理sync.RWMut原创 2021-11-27 17:43:17 · 836 阅读 · 0 评论 -
Go面试题(四):锁的实现原理sync-mutex 篇
大家好,我是小道哥在Go中,主要实现了两种锁:sync.Mutex(互斥锁) 以及 sync.RWMutex(读写锁)。本篇主要给大家介绍sync.Mutex的使用和实现原理。为什么需要锁在高并发下或多goroutine同时执行下,可能会同时读写同一块内存,比如如下场景:var count intvar mu sync.Mutexfunc func1() { for i := 0; i < 1000; i++ { go func() { count = count + 1原创 2021-11-20 09:36:06 · 1195 阅读 · 0 评论 -
Go面试题(三):map的实现原理
大家好,我是小道哥。今天为大家讲解的面试专题是: map的实现原理。map定义map是一种key-value键值对的存储结构,其中key是不能重复的,其底层实现采用的是hash表。map的数据结构首先我们先列出源码结构关键字段,实现在 src/runtime/map.go:type hmap struct { count int // 元素的个数 B uint8 // buckets 数组的长度就是 2^B 个 overflow uint16 // 溢出桶的原创 2021-11-12 22:13:38 · 2621 阅读 · 3 评论 -
Go面试专题(二):聊聊Go语言中的闭包理解
大家好,我是小道哥。今天为大家讲解的面试专题是: 闭包。定义闭包在计算机科学中的定义是:在函数内部引用了函数内部变量的函数。看完定义后,我陷入了沉思…确实,如果之前没有接触过闭包或者对闭包不理解的话,这个定义着实有点让人上头。下面让我们先看几个示例,在了解闭包的实际应用后,再去理解这个定义,就不会那么晦涩难懂了。示例Go 语言是通过匿名函数实现闭包的。func increase() func(int) int { sum := 0 return func(i int) int { s原创 2021-11-06 18:27:40 · 499 阅读 · 0 评论 -
Go面试专题(一):聊聊你理解的Golang defer关键字
目录defer两大特性defer与return的执行顺序defer的应用场景场景一:资源释放场景二:异常捕获场景三:代码追踪场景四:打印函数的参数和返回值 面试点总结大家好,我是小道哥。defer关键字是我们工作中经常用到的go语言特性,也是面试官比较青睐的一个知识点,今天通过这篇文章带各位道友彻底掌握它。defer两大特性defer是golang中的一个关键字,它主要具有两大特性:延迟调用: 在当前函数执行完成后调用执行。funcf1(){...原创 2021-11-06 17:36:01 · 570 阅读 · 2 评论