IT书架 本次搜索耗时 0.090 秒,为您找到 752 个相关结果.
  • 26.sync.Mutex与sync.RWMutex

    628 2023-12-29 《Go语言核心36讲》
    26 | sync.Mutex与sync.RWMutex 前导内容: 竞态条件、临界区与同步工具 问题解析 知识扩展 总结 思考题 26 | sync.Mutex与sync.RWMutex 我在前面用20多篇文章,为你详细地剖析了Go语言本身的一些东西,这包括了基础概念、重要语法、高级数据类型、特色语句、测试方案等等。 这些都是Go语言为...
  • 1.go最常用的设计模式-函数选项

    设计模式很重要, 设计模式其实就是为了解决某一类问题而形成的代码写法,设计模式很多,但是并不是每个都很常用,我们只讲解一些常用的 设计模式分类大家可以参考:https://juejin.cn/post/6908528350986240014 go中最常用的设计模式是函数选项模式, grpc,kratos等等开源项目中比比皆是有时候一个函数会有很多参数...
  • 200.当go服务部署到线上了,发现有内存泄露,该怎么处理

    当go服务部署到线上了,发现有内存泄露,该怎么处理 当go服务部署到线上了,发现有内存泄露,该怎么处理 题目来源: 腾讯 答案: 如果有内存泄漏,无非就是两种情况,1.goroutine泄漏。2.有一些全局的数据结构意外的挂住了本该释放的对象,虽然goroutine已经退出了,但是这些对象并没有从这类数据结构中删除,导致对象一直被引用,无法...
  • 288.说说火焰图?如何分析的?

    说说火焰图?如何分析的? 答案: 说说火焰图?如何分析的? 参考解析 题目来源:字节 答案: 火焰图横轴是 CPU 占用时间,纵轴是调用顺序。火焰图的调用顺序从下到上,每个方块代表一个函数,它上面一层表示这个函数会调用哪些函数,方块的大小代表了占用 CPU 使用的长短;火焰图可以从全局来查看系统运行时的内存和 CPU,以及 Gorou...
  • 452.Go 当中同步锁有什么特点?作用是什么

    Go 当中同步锁有什么特点?作用是什么 Go 当中同步锁有什么特点?作用是什么 参考解析 当一个Goroutine(协程)获得了Mutex后,其他Goroutine(协程)就只能乖乖的等待,除非该Goroutine释放了该Mutex。RWMutex在读锁占用的情况下,会阻止写,但不阻止读 RWMutex。 在写锁占用情况下,会阻止任何其他Gorou...
  • 24.go垃圾回收,什么时候触发

    go垃圾回收,什么时候触发 go垃圾回收,什么时候触发 答案1: 主动触发(手动触发),通过调用 runtime.GC 来触发GC,此调用阻塞式地等待当前GC运行完毕。被动触发,分为两种方式:1)使用步调(Pacing)算法,其核心思想是控制内存增长的比例,每次内存分配时检查当前内存分配量是否已达到阈值(环境变量GOGC):默认100%,即当内存...
  • 143.对go的中间件和工作机制有了解吗?

    对go的中间件和工作机制有了解吗? 对go的中间件和工作机制有了解吗? 题目来源:好未来 答案: 中间件的设计使得具有一般性、通用性的代码从业务代码中剥离,独立出来。 以网络中的请求响应为例 以 go 的原生为例,要实现一个中间件,就要实现 http.Handler 接口 type Handler interface { ...
  • 416.channel和共享内存有什么优劣势?

    channel和共享内存有什么优劣势? channel和共享内存有什么优劣势? 参考解析 答案: Go的设计思想就是, 不要通过共享内存来通信,而是通过通信来共享内存,前者就是传统的加锁,后者就是Channel。共享内存是在操作内存的同时,通过互斥锁、CAS等保证并发安全,而channel虽然底层维护了一个互斥锁,来保证线程安全,但其可以理解为先...
  • 82.go怎么实现封装继承多态

    go怎么实现封装继承多态 go怎么实现封装继承多态 题目来源 :好未来 答案1: 封装 封装就是把抽象出的字段和字段的操作封装在一起,数据被保护在内部,程序的其他包只有通过被授权的操作(方法)才能对字段进行操作。实现如下面代码所示,需要注意的是,在golang内,除了slice、map、channel和显示的指针类型属于引用类型外,其它类...
  • 360.Go创建协程的过程

    Go创建协程的过程 答案: Go创建协程的过程 参考解析 题目来源:虾皮 答案: 想要启动一个新的 Goroutine 来执行任务时,我们需要使用 Go 语言的 go 关键字,编译器会通过 cmd/compile/internal/gc.state.stmt 和 cmd/compile/internal/gc.state.cal...