IT书架 本次搜索耗时 0.078 秒,为您找到 752 个相关结果.
  • 564.Go Cond实现原理

    Go Cond实现原理 概念 底层数据结构 使用方法 Go Cond实现原理 概念 Go 标准库提供了Cond 原语,可以让 Goroutine 在满足特定条件时被阻塞和唤醒 底层数据结构 type Cond struct { noCopy noCopy // L is held while o...
  • 563.Go WaitGroup实现原理?

    Go WaitGroup实现原理? 概念 底层数据结构 使用方法 Go WaitGroup实现原理? 概念 Go 标准库提供了WaitGroup 原语, 可以用它来等待一批 Goroutine 结束 底层数据结构 // A WaitGroup must not be copied after first use. type Wa...
  • 558.Go GC实现原理?

    Go GC实现原理? 什么是GC? 主流GC算法 Go GC算法 三色标记法 root对象 插入写屏障 删除写屏障 混合写屏障 GC流程 GC触发时机 GC算法演进 Go GC实现原理? 什么是GC? 垃圾回收也称为GC(Garbage Collection),是一种自动内存管理机制 现代高级编程语言管理内存的方式分为两种...
  • 527.Go map如何扩容?

    Go map如何扩容? Go map如何扩容? 参考解析 扩容时机: 在向 map 插入新 key 的时候,会进行条件检测,符合下面这 2 个条件,就会触发扩容 if ! h . growing () && ( overLoadFactor ( h . count + 1 , h . B ) || tooManyOve...
  • 524.Go map如何查找?

    Go map如何查找? Go map如何查找? 参考解析 Go 语言中读取 map 有两种语法:带 comma 和 不带 comma。当要查询的 key 不在 map 里,带 comma 的用法会返回一个 bool 型变量提示 key 是否在 map 中;而不带 comma 的语句则会返回一个 value 类型的零值。如果 value 是 int...
  • 160.Go string底层实现?

    Go string底层实现? 答案: Go string底层实现? 题目来源:字节跳动 答案: 源码包 src/runTime/string.go.stringStruct 定义了string的数据结构: Type stringStruct struct { str unsafe . Pointer len ...
  • 229.go 建堆过程

    go 建堆过程 答案: go 建堆过程 参考解析 题目来源: 字节跳动 答案: 堆的概念 堆是一个完全二叉树 (除了最后一层,其他都是满节点,最后一层先排左节点) 堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。 完全二叉树适合用数组存储,因为下标为 i 的元素,它的左子树下标为 2i, 右子树下标为 2i+...
  • 5.Go的GMP模型?

    Go的GMP模型? Go的GMP模型? 答案1: G是Goroutine的缩写,相当于操作系统的进程控制块(process control block)。它包含:函数执行的指令和参数,任务对象,线程上下文切换,字段保护,和字段的寄存器。 M是一个线程,每个M都有一个线程的栈。如果没有给线程的栈分配内存,操作系统会给线程的栈分配默认的内存。当线程...
  • 4.Go GC实现原理?

    4.Go GC实现原理? 什么是GC? 主流GC算法 Go GC算法 三色标记法 root对象 插入写屏障 删除写屏障 混合写屏障 GC流程 GC触发时机 GC算法演进 4.Go GC实现原理? 什么是GC? 垃圾回收也称为GC(Garbage Collection),是一种自动内存管理机制 现代高级编程语言管理...
  • 2.Go 内存逃逸机制?

    2.Go 内存逃逸机制? 概念 逃逸机制 指针逃逸 栈空间不足 变量大小不确定 动态类型 闭包引用对象 总结 2.Go 内存逃逸机制? 概念 在一段程序中,每一个函数都会有自己的内存区域存放自己的局部变量、返回地址等,这些内存会由编译器在栈中进行分配,每一个函数都会分配一个栈桢,在函数运行结束后进行销毁,但是有些变量我们想在函数运...