介绍go语言的gmp协程调度模
答案:sunriseG-M-P分别代表:G: Goroutine,Go协程,是参与调度与执行的最小单位M: Machine,指的是系统级线程P: Proc...
如何实现只开100个协程
题目来源:答案:sunrise// 利用 channel 的缓存区实现 func main() { var wg sync.WaitGroup ...
go的map的底层数据结构,查询复杂度
题目序号:(5328)题目来源:金山频次:1答案1:(Kjj)map底层数据结构:map底层数据结构前文已经整理过了,这里不做赘述。查询复杂度:空间复杂度...
你能介绍一下go的包管理工具吗?除了gomod还知道哪些?
题目序号:(5327)题目来源:美团频次:1答案1:(Kjj)1、GOPATH对于外部依赖的管理,在go 1.5之前go没有像java使用maven来管理...
go语言中结构体指针为空,赋给一个interface{}为什么
题目来源:字节跳动答案:树枝1.空结构体有以下几大特点不占用内存地址。地址不变2. 空接口的内部实现保存了对象的类型和指针
如何排查线上程序问题
题目来源:字节跳动答案:树枝线上问题排查思路(如忽然访问变慢)链路追踪(zipkin skywalking等),确认问题在哪条链路上(是否是因为调用别人的...
实现chan struct{}不占用内存空间,实现传递信号的通道
题目来源:BIGO答案:树枝// 空结构体的宽度是0,占用了0字节的内存空间。 // 所以空结构体组成的组合数据类型也不会占用内存空间。 channel ...
借助额外的数据结构比如slice等,对key进行排序,遍历slice得到顺序输出
题目来源:BIGO答案:树枝1.解题思路我们现在有一个“有序的切片”根据这个切片将map有序输出2.这里写的是一个模板,根据具体的slice与map来写出...
golang调度能不能不要p
题目来源:腾讯答案:树枝1.介绍golang调度器中P是什么?Processor的简称,处理器,上下文。 2.简述p的功能与为什么必须要P它的主要用途就是...
性能调优怎么做
题目来源:腾讯答案:树枝1.首先要了解调优的基本思路1.对外接口协议不能改变 2.了解需求和代码演进过程 3.确定资源消耗类型 4.控制运算数据输入量 5...
golang: pprof使用
题目来源:腾讯答案:树枝首先都介绍什么是pprofpprof是golang自带的性能分析工具,可以查看应用的运行状态,分析程序CPU,内存,gorouti...
协程怎么停顿?
题目来源:shopee1.使用for-rangefor-range从channel上接收值,直到channel关闭,该结构在Go并发编程中很常用,这对于从...
runtime
题目来源:一点资讯答案:树枝1.理解goruntimegolang 的 runtime 在 golang 中的地位类似于 Java 的虚拟机,不过 go ...
简单介绍一下go的内存分配机制?有mcentral为啥要mcache?
题目来源:知乎答案:树枝1.介绍内存分配机制GO语言内存管理子系统主要由两部分组成:内存分配器和垃圾回收器(gc)。内存分配器主要解决小对象的分配管理和多...
Go 语言内存分配,什么分配在堆上,什么分配在栈上
题目来源:知乎答案:自由Go 语言有两部分内存空间:栈内存和堆内存。栈内存由编译器自动分配和释放,函数调用的参数、返回值以及局部变量大都会被分配到栈上。堆...
从包管理来讲,gomod包括之前的dep等等
题目来源:百度答案:重拾vendor,可以把所有依赖下载到当前项目中,解决可重复构建(reproducible builds)的问题,但是无法管理依赖版本...
Goroutine 数量是越多越好吗?
题目序号:3417题目来源:百度频次: 1答案:豪豪、栾龙生协程具体开多少个主要根据不同的业务场景来决定协程那么小 随便开啊,这其实是不正确的思想,...
Go依赖管理历史有几次方式
题目序号:3437题目来源:百度频次: 1答案:豪豪GOPATH:在最出的设计中,没有考虑到版本控制,因此作为依赖根据GOPATH目录。GO ven...
对比下node和go
题目来源:字节答案:flareNode.js 是基于JavaScript引擎构建的跨平台的后台脚本开发语言,Node.js是单线程的;Node.js的错误...
go实现一个并发限制爬虫
题目来源:字节答案:flare思路使用有缓冲channel与sync.WatitGroup实现并发限制利用有缓冲channel的容量控制并发协程数sync...
说说火焰图?如何分析的?
题目来源:字节答案:flare火焰图横轴是 CPU 占用时间,纵轴是调用顺序。火焰图的调用顺序从下到上,每个方块代表一个函数,它上面一层表示这个函数会调用...
写一个东西:一个字符串json,转成一个直接可用的map,字符串可能是任何形式
题目来源:字节答案:flarepackage main import ( "encoding/json" "...
go的通信实现
题目来源:滴滴答案:flareGo通信是通过channel实现的,chan定义实现了环形队列,总是遵循先入先出(First In First Out)的规...
go interface的底层实现
题目来源:拼多多答案:ORVR在Go语言中interface是一个非常重要的概念,也是与其它语言相比存在很大特色的地方。interface也是一个Go语言...
go channel底层实现
题目来源:拼多多答案:ORVR在了解channel底层实现前,先得明白go的并发模型,在其他的语言中java、Python中的并发模型基本都是基于操作系统...
go协程的简单用法
题目来源:字节跳动答案:ORVR在Go语言中开一个协程非常方便,在需要通过协程来执行的函数时,直接在函数前加go关键字就可以package main i...
go func与method之前的那个receiver的作用
题目来源:字节跳动答案:ORVR在go语言中,没有类的概念但是可以给类型(结构体,自定义类型)定义方法,所谓方法就是定义了接收者的函数,接收者定义在fun...
两个协程交替打印一个数组,使数组中的数据按顺序输出
题目序号:336题目来源:小米频次:3470答案:大布丁使用两个channel,一个专门用于通信的 channel,另一个用于输出消息,使用两个协程进行打...
一个函数传参一个 slice,先 append 再赋值和另一个函数先赋值再append,哪个会发生变化?
题目序号:337题目来源:字节跳动频次:3492解析:本题主要考察是覆盖跟添加的点,个人觉得此题考察变化的意义不大,题目出的不行。答案:大布丁packag...
有没有什么线程安全的办法?
题目序号:338题目来源:字节跳动频次:3494答案:大布丁在Go 语言中,线程安全一般指协程安全,因为 Go 一般使用协程进行调度;而 Go 中为了保证...
一组协程完成后需要通知其他协程,可以怎么办?
题目序号:339题目来源:字节跳动频次:3495答案:大布丁本题有两种方法:1、使用全局的 sync.waitGroup 来控制协程执行个数,如下图代码所...
为什么用户级别的线程 goroutine 比操作系统线程更轻量级?
题目序号:340题目来源:字节跳动频次:3513答案:大布丁1、首先 Go 语言中的 goroutine 进行切换时,比操作系统线程效率高。 Go 语...
GO的垃圾回收?Java的垃圾回收?Python的垃圾回收
题目来源:PingCap答案:重拾python1.引用计数法引用计数算法在每个对象都维护着一个内存字段来统计它被多少”部分”使用,每当有一个新的引用指向该...
可以从多个角度来讲比如面向对象来说,多态继承等等
题目来源:百度答案:重拾Go 面向对象编程的三大特性:封装、继承和多态。封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式继承:使得子类具有父类的属性...
从运行速度来讲,go的并发模型channel和goroutine
题目来源:百度答案:重拾(1)Goroutinegoroutine 是一种非常轻量级的实现,可在单个进程里执行成千上万的并发任务,它是Go语言并发设计的核...
silce遇到过哪些坑,原理?append可能导致底层数组改变
题目序号:435题目来源:百度整理人:lws切片扩容的策略:首先判断,如果新申请容量大于 2 倍的旧容量,最终容量就是新申请的容量否则判断,如果旧切片的长...
对比 Go 语言和 Java 语言
题目来源:知乎答案:自由语言不是创造的,语言都是组合的。Go 比 Java 更年轻,在语言的特点上,Go 学习了许多语言的优点,避开了许多原的缺点。Go ...
如果项目里api耗时过久,你会怎么去排查
题目序号:(3640)题目来源: 百度频次: 1答案:小强如果项目添加链路追踪,每一处的调用耗时记录在日志当中,通过日志先找到问题的大概地方主要先查看数...
golang的gc流程,会stw吗,三色不变和混合写屏障
题目序号:(3636, 4084, 5253)题目来源: 百度, 知乎,跟谁学频次: 3答案:小强三色标记垃圾收集器的工作原理从灰色对象的集合中选择一个...
golang怎么协调并发协程的调度
题目序号:(3635)题目来源: 百度频次: 1答案:小强使用channel+waitgroup协调并发的调度func main(){ ch :...
看过管道的底层源码吗
题目序号:(3620)题目来源: 百度频次: 1答案:小强Channel原理channel的底层是一个hchan的结构体 基于锁实现的type hcha...
string类型转为[]byte过程发生了什么
题目序号: 5720题目来源: 知乎频次: 1答案:咸鱼没有早餐虽然在 src/builtin/builtin.go 中可以找到 string 的定义ty...
GO语言中的协程与Python中的协程的区别?
题目序号:437题目来源:字节整理人:lwspython协程特点单线程内切换,适用于IO密集型程序中,能够最大化IO多路复用的效果。没法利用多核。协程间彻...
用go写rpc框架的具体功能细节
题目序号:(479)题目来源: 跟谁学频次: 1答案:阿纪、注册中心是单机还是分布式的,其中一个挂了怎么办?分布式集群。 在集群中,所有节点既是服务提供者...
go 从源码到二进制代码的整个流程
题目序号:(483)题目来源: 阿里频次: 1答案:阿纪、从源代码文件到可执行文件过程发生了哪些事情前端编译1.根据架构初始化不同的链接器Link结构体 ...
go map时间复杂度
题目序号:(482)题目来源: 腾讯频次: 1答案:阿纪、map特性特性:kv存储,能在O(1)时间复杂度内找到v, 实现: 存储: 对key进行hash...
已加贵站~
name: 技研录
link: https://linmohan.fun/
avatar: https://linmohan.fun/img/favicon.png
descr: 「代码重构世界,逻辑解构真理」