美文网首页
Go 语言笔试面试题(实现原理)

Go 语言笔试面试题(实现原理)

作者: robertzhai | 来源:发表于2023-02-19 08:13 被阅读0次

三色标记,由3种颜色组成

  • 黑色 Black:表示对象是可达的,即使用中的对象,黑色是已经被扫描的对象。
  • 灰色 Gary:表示被黑色对象直接引用的对象,但还没对它进行扫描。
  • 白色 White:白色是对象的初始颜色,如果扫描完成后,对象依然还是白色的,说明此对象是垃圾对象。
  • 三色标记规则:黑色不能指向白色对象。即黑色可以指向灰色,灰色可以指向白色。

三色标记主要流程

  • 初始所有对象被标记为白色。

  • 寻找所有Root对象,比如被线程直接引用的对象,把Root对象标记为灰色。

  • 把灰色对象标记为黑色,并它们引用的对象标记为灰色。

  • 持续遍历每一个灰色对象,直到没有灰色对象。

  • 剩余白色对象为垃圾对象。

  • Go内存分配那些事,就这么简单!

  • Go垃圾回收 1:历史和原理

相关文章

  • Go 语言笔试面试题(实现原理)

    https://cloud.tencent.com/developer/article/2009789[https...

  • Go语言——垃圾回收GC

    Go语言——垃圾回收GC 参考: Go 垃圾回收原理 Golang源码探索(三) GC的实现原理 Getting ...

  • 2018-05-24raft实现代码

    1.go语言实现raft分发原理main.go 文件代码如下

  • 彻底理解Golang Slice

    看完这篇文章,下面这些高频面试题你都会答了吧 Go slice的底层实现原理 Go array和slice的区别 ...

  • Golang之Map源码

    引用 深入 Go 的 Map 使用和实现原理 哈希表 深度解密Go语言之map Golang map 的底层实现 使用

  • Go语言实现TCP通信

    章节 go 优势 go 实现 TCP 通信 1 go 语言优势 1.1 go 语言优势 2 go 实现TCP通信 ...

  • 2018-09-09

    语言基础(go)及生态 gorutine实现原理 gc channel 上下文管理器 map的底层实现,如何保证线...

  • Golang源码之Channel

    引用 图解Golang的channel底层原理 深入理解Golang Channel Go语言设计与实现-Chan...

  • Go语言interface实现原理详解

    1 前言 1.1 Go汇编  Go语言被定义为一门系统编程语言,与C语言一样通过编译器生成可直接运行的二进制文件。...

  • IOS面试(2018)

    经典面试题 非技术面试题 C面试题1 C面试题2 C面试题3 iOS笔试题01 iOS笔试题02 iOS笔试题03...

网友评论

      本文标题:Go 语言笔试面试题(实现原理)

      本文链接:https://www.haomeiwen.com/subject/xmfvkdtx.html