IT书架 本次搜索耗时 0.018 秒,为您找到 207 个相关结果.
  • 165.golang 的 waitGroup 用法

    163 2024-01-18 《Golang面试题》
    golang 的 waitGroup 用法 golang 的 waitGroup 用法 题目来源:腾讯 答案: WaitGroup 的实现逻辑 WaitGroup 的底层内存结构及性能优化 WaitGroup 的内部如何实现无锁操作WaitGroup 的使用 func main () { var wg sync ...
  • 319.golang的gc流程,会stw吗,三色不变和混合写屏障

    154 2024-01-22 《Golang面试题》
    golang的gc流程,会stw吗,三色不变和混合写屏障 golang的gc流程,会stw吗,三色不变和混合写屏障 题目来源: 百度, 知乎,跟谁学 答案: 三色标记垃圾收集器的工作原理 从灰色对象的集合中选择一个灰色对象并将其标记成黑色; 将黑色对象指向的所有对象都标记成灰色,保证该对象和被该对象引用的对象都不会被回收; 重复上...
  • 并发、协程和信道

    一、并发介绍 二. 协程和 go 关键字 三、信道 chan 四、锁实现并发安全 Golang 语言提供了 go 关键字,以及名为 chan 的数据类型,以及一些标准库的并发锁等,我们将会简单介绍一下并发的一些概念,然后学习这些 Golang 特征知识。 一、并发介绍 我们写程序时,可能会读取一个几千兆的日志,读磁盘可能需要读几十秒钟...
  • 242.Golang和Java的垃圾回收机制

    145 2024-01-18 《Golang面试题》
    Golang和Java的垃圾回收机制 答案: Golang和Java的垃圾回收机制 参考解析 题目来源:Amber Group 答案: golang在1.8GC之后采用三色标记法与混合写屏障技术 三色分别指白色,黑色,灰色 白色表示没有被扫描到的对象,黑色表示活跃的对象,灰色状态在白色与黑色之间 三色标记算法分五个步骤 将...
  • 使用标准库

    一、避免重复造轮子 二、总结 一、避免重复造轮子 官方提供了很多库给我们用,是封装好的轮子,比如包 fmt ,我们多次使用它来打印数据。 我们可以查看到其里面的实现: package fmt func Println ( a ... interface {}) ( n int , err error ) { ...
  • 443.go map slice 实现(内存泄漏分析)

    136 2024-01-23 《Golang面试题》
    go map slice 实现(内存泄漏分析) 答案1: go map slice 实现(内存泄漏分析) 参考解析 题目来源:知乎 答案1: slice内存泄漏分析 ( 1 )发生场景:截取长 slice 中的一段导致长 slice 未释放 ​ 由于底层都是数组,如果截图长slice的一段,其实相当于引用了底层数组中的一小段...
  • 4.go项目目录规范

    很多目录规范是随着某个框架而确定的,并不是语言本身可以决定目录规范,比如python中的django目录, java的spring目录规范,但是go目前还没有出现spring一样一统天下的框架,所以目录规范也并不统一,但是在某种程度上还是有大家的共识的,我们以uber的目录规范来做一下说明。 参考: https://github.com/golang-st...
  • 177.Golang 里怎么避免内存逃逸?

    162 2024-01-18 《Golang面试题》
    Golang 里怎么避免内存逃逸? 答案: Golang 里怎么避免内存逃逸? 参考解析 题目来源:蚂蚁 答案: 不要盲目使用变量指针作为参数,虽然减少了复制,但变量逃逸的开销更大。 预先设定好slice长度,避免频繁超出容量,重新分配。 一个经验是,指针指向的数据大部分在堆上分配的,请注意。 出现内存逃逸的情况有: 1.发送指...
  • 239.用过go,那么进程,协程,线程各自的优缺点

    157 2024-01-18 《Golang面试题》
    用过go,那么进程,协程,线程各自的优缺点 答案: 用过go,那么进程,协程,线程各自的优缺点 参考解析 题目来源:百度 答案: 首先简单介绍一下进程、线程、协程 进程:是操作系统中最小的资源分配单位,当一个程序加载到内存中成为进程时,进程分为四个部分-堆栈、堆、文本和数据。 优点:独占全部资源隔离性好。 缺点:只能干一件事,浪...
  • 340.go的值传递和引用传递

    163 2024-01-22 《Golang面试题》
    go的值传递和引用传递 go的值传递和引用传递 题目来源:知乎 **答案:** 值传递只会把参数的值复制⼀份放进对应的函数,两个变量的地址不同,不可相互修改。 地址传递(引⽤传递)会将变量本身传⼊对应的函数,在函数中可以对该变量进⾏值内容的修改。 golang默认都是采用值传递,即拷贝传递,有些值天生就是指针(slice、map、chan...