深度探索 Go語言:物件模型與 runtime 的原理特性及應用

封幼林 編著

  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-1
  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-2
  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-3
  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-4
  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-5
  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-6
  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-7
  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-8
  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-9
  • 深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-10
深度探索 Go語言:物件模型與 runtime 的原理特性及應用-preview-1

買這商品的人也買了...

商品描述

x86組合語言基礎知識,通用暫存器、常用指令,記憶體分頁

指標的實現原理,指標組成、相關操作,以及Go語言的unsafe套件等。

函數、堆疊框佈局、呼叫約定、變數逃逸、Function Value、閉包、deferpanic

方法,實現原理,接收者類型、Method Value和組合式繼承

介面Go語言動態特性,括裝箱、方法集、動態派發、類型斷言、類型系統和反射

goroutine實現GMP模型、goroutine的建立與退出、排程迴圈、先佔式排程、timernetpoller和監控執行緒

同步,記憶體亂數、原子指令、自旋鎖、runtime互斥鎖和訊號量、ync.Mutexhannel

堆積記憶體管理heapArenamspanmallocgc函數、C的三色抽象、寫入屏障

堆疊記憶體管理goroutine堆疊的分配、增長、收縮和釋放

 

想要有C語言的高速和Python的便利性嗎?Go是最棒的選擇,Go語言在語言層面上支援程式碼協同(goroutine)和通道(channel),這使得併發程式設計變得非常簡單和高效。

在多核CPU時代,高效的併發程式設計已經成為軟體開發的必備技能之一。此外Go語言的語法設計簡單清晰,注重可讀性和簡潔性,使得初學者能夠快速入門。

Go語言的標準函數庫提供了豐富的功能,可以直接使用,避免了一些繁瑣的工作。另外在跨平臺支援方面,Go語言的編譯器可以將程式編譯成機器碼,支援跨平臺編譯,可以在不同的作業系統和硬體平臺上運行,這對於開發跨平臺應用程式非常有幫助。

Go最有名的就是其高性能。Go語言的編譯速度非常快,生成的二進位檔案也很小,運行速度也非常快。

Go語言在一些性能要求較高的應用領域,如Web服務、巨量資料處理、容器等方面表現出色。另外其開發效率高,Go語言在一些方面與PythonRuby等動態語言相似,但又具有靜態語言的優點。

Go語言的編譯器能夠在編譯期間捕捉一些錯誤,這使得程式的穩固性更高。同時,Go語言的工具鏈非常完善,如go fmtgo vet等工具可以幫助開發者規範程式,提高開發效率。

作者簡介

封幼林

資深軟體工程師,十多年IT從業經驗,曾涉足Win32桌面程式開發、Android行動端開發,以及互聯網服務器端開發等多個領域。喜歡研究底層技術,用自己的方法探究背後的實
現原理。熱愛技術交流與分享,創建了微信公眾號「幼麟實驗室」,致力做一些形象、通透的計算機教程,讓開發者「知其然亦知其所以然」。

目錄大綱

1 組合語言基礎

1.1 x86通用暫存器

1.2 常用組合語言指令

1.3 記憶體分頁機制

1.4 組合語言程式碼風格

1.5 本章小結

 

2 指標

2.1 指標組成

2.2 相關操作

2.3 unsafe套件

2.4 本章小結

 

3 函數

3.1 堆疊幀

3.2 逃逸分析

3.3 Function Value

3.4 defer

3.5 panic

3.6 本章小結

 

4 方法

4.1 接收者類型

4.2 Method Value

4.3 組合式繼承

4.4 本章小結

 

5 介面

5.1 空介面

5.2 不可為空介面

5.3 類型斷言

5.4 反射

5.5 本章小結

 

6 goroutine

6.1 處理程序、執行緒與程式碼協同

6.2 IO多工

6.3 巧妙結合

6.4 GMP模型

6.5 GMP主要資料結構

6.6 排程器初始化

6.7 G的建立與退出

6.8 排程迴圈

6.9 先佔式排程

6.10 timer

6.11 netpoller

6.12 監控執行緒

6.13 本章小結

 

7 同步

7.1 Happens Before

7.2 記憶體亂數

7.3 常見的鎖

7.4 Go語言的同步

7.5 本章小結

 

8 堆積

8.1 記憶體分配

8.2 垃圾回收

8.3 本章小結

 

9 堆疊

9.1 堆疊分配

9.2 堆疊增長

9.3 堆疊收縮

9.4 堆疊釋放

9.5 本章小結