WaitGroup的坑
答案1:① Add一个负数如果计数器的值小于0会直接panic② Add在Wait之后调用比如一些子协程开头调用Add结束调用Wait,这些 Wait无...
go struct 能不能比较
答案1:需要具体情况具体分析,如果struct中含有不能被比较的字段类型,就不能被比较,如果struct中所有的字段类型都支持比较,那么就可以被比较。不可...
go 实现不重启热部署
答案1:根据系统的 SIGHUP 信号量,以此信号量触发进程重启,达到热更新的效果。热部署我们需要考虑几个能力:新进程启动成功,老进程不会有资源残留新进程...
读写锁底层是怎么实现的
答案1:读写锁的底层是基于互斥锁实现的。为什么有读写锁,它解决了什么问题?(使用场景)它的底层原理是什么?在这里我会结合 Go 中的读写锁 RWMutex...
数组是如何实现用下标访问任意元素的
题目序号:(548)题目来源: 伴鱼频次: 1答案1:(泉)数组是如何实现根据下标随机访问数组元素的吗?例如: a := [10]int计算机给数组a,分...
goroutine与线程的区别?
题目序号:(113、653)题目来源: 小鹅通、网易频次: 2答案1:(泉)一个线程可以有多个协程线程、进程都是同步机制,而协程是异步协程可以保留上一次调...
讲一讲 GMP 模型
题目序号:(9,31,98,152,218,486,637,651,694,739,819,863,917,978,937,1216,1674,1865,...
了解的gc算法有哪些?
题目序号:(820、5330、6615、982、5526、5430、167)题目来源:高德、金山、北京合链 、腾讯、地平线、小米频次:6答案1:(peac...
go垃圾回收,什么时候触发
题目序号:(2316、2882)题目来源:滴滴、蚂蚁 频次:3答案1:(peace)主动触发(手动触发),通过调用 runtime.GC 来触发GC,此调...
深拷贝和浅拷贝
题目序号:(225、2462、4794、6617)题目来源:北京合链、映客、腾讯 频次:4答案1:(peace)1) 深拷贝︰拷贝的是数据本身,创造一个新...
为什么不要大量使用goroutine
题目序号:(650)题目来源:网易 频次:1答案1:(peace)大量创建goroutine,势必会消耗大量的系统资源(如内存、CPU等),从而可能导致系...
channel有缓冲和无缓冲在使用上有什么区别?
题目序号:(656)题目来源:网易 频次:1答案1:(peace)无缓冲:发送和接收需要同步。有缓冲:不要求发送和接收同步,缓冲满时发送阻塞。因此 cha...
如何判断channel是否关闭?
题目序号:(1488)题目来源:字节 频次:1答案1:(peace)读channel的时候判断其是否已经关闭_,ok := <- jobs此时如果 ...
make 与 new 的区别
题目序号:(1631 2000 3317 3468 96) 题目来源: 腾讯 Shein 小米 好未来频次: 5答案1:(苦痛律动)引用类型与值类型引用类...
Slice 与 Array, Append()
题目来源: 实在太多 频次: 40+答案1:(苦痛律动) +Array数组(Array)是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个...
如何实现一个线程安全的 map?
题目序号:(638)题目来源:学而思频次:1答案1:(自由)+三种方式实现:加读写锁分片加锁sync.Map加读写锁、分片加锁,这两种方案都比较常用,后者...
go 的锁是可重入的吗?
题目序号:(663)题目来源:网易频次:1答案1:(自由)不是可重入锁。讨论这个问题前,先解释一下“重入”这个概念。当一个线程获取到锁时,如果没有其他线程...
Go map 的底层实现 ?
题目序号:(67,94,6832,2995,858,1036,1048,1380,1507,1859) 题目来源:好未来、小米、腾讯、小米、滴滴、腾讯、字...
map的key可以是哪些类型?可以嵌套map吗?
题目序号:(209)题目来源:好未来 频次:1答案1:(行飞子)golang中的map,的 key 可以是很多种类型,比如 bool, 数字,...
协程goroutine
题目序号:(2)题目来源:深信服 频次:1答案1:(阿纪、)题解来源 协程是一种用户态的轻量级线程,协程的调度完全由用户控制(进程和线程都是由cpu 内核...
讲一下set的原理,Java 的HashMap和 go 的map底层原理
题目序号:(8)题目来源:深信服频次:1答案1:(阿纪、)+1. Set原理:Set特性: 1. 不包含重复key. 2.无序.如何去重:通过查看源码ad...
go的GC(标记清理 -> 三色标记发 -> 混合写屏障)
题目序号:(10、6823、6369、6550、5679、5389、5157、5119、4350、247、273、315、2826、3116、3197、2...
go 中用 for 遍历多次执行 goroutine会存在什么问题
题目序号:(16,17)题目来源:深信服频次:2答案1:(阿纪、)1.假如在协程中打印for的下标i或当前下标的元素,会随机打印载体中的元素.原因有二: ...
gmp当一个g堵塞时,g、m、p会发生什么
题目序号:(32)题目来源:百度频次:1答案1:(阿纪、)当g阻塞时,p会和m解绑,去寻找下一个可用的m。g&m在阻塞结束之后会优先寻找之前的p,如果此时...
Golang 逃逸分析
题目序号:(168、2762、2880、4829、5529、3442)题目来源:百度、哔哩哔哩、字节跳动、蚂蚁、网易、阿里频次:6答案1:(hello w...
获取不到锁会一直等待吗?
题目序号:(664)题目来源:网易题目频次:1答案1:(自由)会。在 2016 年 Go 1.9 中 Mutex 增加了饥饿模式,让锁变得更公平,不公平的...
如何实现一个 timeout 的锁?
题目序号:(665)题目来源:网易题目频次:1答案1:(自由)用 for 循环和 TryLock 实现。先记录开始的时间,用 for 循环判断是否超时,没...
go 的切片扩容机制
题目序号:(850)题目来源:小米题目频次:1答案1:(自由)扩容是为切片分配新的内存空间并复制原切片中元素的过程。在 go 语言的切片中,扩容的过程是:...
管道是否能二次关闭?
题目序号:(3597、2008)题目来源: 百度 、shein 频次:2答案1:(栾龙生)关闭已关闭的通道会引发panic: close of close...
管道关闭是否能读写?
题目序号:(2005、3596、3685、5203、6236)题目来源: 百度、深信服、微步、滴滴 频次:5答案1:(peace)往已关闭的channel...
问等待所有goroutine结束,怎么做?
题目序号:(6609)题目来源:滴滴 频次:1答案1:(peace)1)用channel进行同步(该方法需要知道goroutine的数量)func mai...
问了一些Golang的基本知识,如slice用copy和左值进行初始化的区别
题目序号:(6631)题目来源:有色频次:1答案1:(peace)1)copy(slice2, slice1)实现的是深拷贝。拷贝的是数据本身,创造一个新...
channel是否线程安全等
题目序号:(6632)题目来源:有色频次:1答案1:(peace)channel为什么设计成线程安全?不同协程通过channel进行通信,本身的使用场景就...
go的map是线程安全的吗?
题目序号:(3493)题目来源:字节频次:1答案1:(peace)线程安全:对map进行并发读写时,如果程序能正常运行并能得到预期的结果。Map默认不是并...
Go语言Slice是否线程安全
题目序号:(1909)题目来源:字节频次:1答案1:(peace)Go语言实现线程安全常用的几种方式:1.互斥锁;2.读写锁;3.原子操作;4.sync....
make可以初始化哪些结构
题目序号:(2001)题目来源:shein频次:1答案1:(peace)通过make创建对象 make只能创建slice 、channel、 map。n...
goroutine 为什么轻量
题目序号:(2558)题目来源:字节频次:1答案1:(peace)从资源消耗方面来看,它只需要一个2Kb的内存栈就可以运行;从运行时来看,它的运行成本很低...
go 深拷贝发生在什么情况下?切片的深拷贝是怎么做的?
题目序号:(225、2462、4794、6617)频次:4 题目来源:映客,腾讯,北京合链答案1:(小小)+深拷贝,浅拷贝概念深拷贝(Deep Copy)...
空结构体占不占内存空间? 为什么使用空结构体?
题目序号:5748题目来源:映客频次 :2答案1:(小小)+空结构体是没有内存大小的结构体。通过 unsafe.Sizeof() 可以查看空结构体的宽度,...
Kratos 框架的特性
题目序号:204题目来源:好未来频次 :1答案1:(自由)Kratos 是一套轻量级的微服务框架,包含了大量微服务相关框架以及工具,它就像一个工具箱,目前...
defer 是怎么用的
题目序号:215题目来源:好未来频次 :1答案1:(自由)从 defer 关键字的常见使用场景和使用时需要注意什么来回答这个问题(不深入到实现原理)。de...
Context 包的作用
题目序号:6780题目来源:腾讯频次 :1答案1:(自由)Context 就像糖葫芦中的竹签子它的作用是在上下文中传递除了业务参数之外的额外信息,这个额外...
golang并发模型
题目序号:(120)题目来源:米哈游频次:1答案1:(阿纪、)+参考文章golang控制并发有三种经典的方式,一种是通过channel通知实现并发控制 一...
golang gmp模型,全局队列中的G会不会饥饿,为什么?P的数量是多少?能修改吗?M的数量是多少?
题目序号:(165)题目来源:哔哩哔哩频次:1答案1:(阿纪、)全局队列中的G不会饥饿。 因为线程想运行任务就得获取P,从P的本地队列获取G,P队列为空时...
go 语言的 panic 如何恢复
题目序号:(1629)题目来源:腾讯频次:1答案1:(自由)recover 可以中止 panic 造成的程序崩溃,或者说平息运行时恐慌,recover 函...
已加贵站~
name: 技研录
link: https://linmohan.fun/
avatar: https://linmohan.fun/img/favicon.png
descr: 「代码重构世界,逻辑解构真理」