01
原文連結: https://mp.weixin.qq.com/s/MNX7QG-TbHXe0OMOun5eWA 原文二維碼:
02
Go語言中提供了對struct的支援,struct
,中文翻譯稱為結構體
,與陣列一樣,屬於複合型別,並非取用型別。
Go語言的struct,與C語言中的struct或其他面向物件程式語言中的類(class)類似,可以定義欄位(屬性)和方法,但也有很不同的地方,需要深入學習,才能區分他們之間的區別。
註意複合型別與取用型別之間的區別,這應該也是值傳遞和取用傳遞的區別吧。
原文連結:
https://juejin.im/post/5ca2f37ce51d4502a27f0539
原文二維碼:
03
前言
Go語言的垃圾回收(Garbage Collection,以下簡稱GC)機制是併發三色標記,是一種不移動的標記-清掃 GC演演算法。在2018年的一次演講 中,官方公佈了嘗試使用分代GC的想法。截止目前(2019年4月份),分代GC仍處於試驗的狀態,沒有具體的釋出時間。
go官方程式碼庫,目前共有10個commit,本文主要講解Go分代GC的實現思路以及現有的一些問題,後面可能詳細講解一下程式碼。
標記-清掃 GC演演算法
標記-清掃GC演演算法首先會從一些固定的root節點開始,對於Go語言來說就是全域性指標和 goroutine 棧上的指標,根據這些root節點進行遞迴標記。當標記完成後,所有被標記的物件就都是存活的,其餘的物件即是可以清掃的。
原文連結:
https://www.jianshu.com/p/2383743edb7b
原文二維碼:
04
我在多個場合都被問到為什麼使用工作池樣式,為什麼不在需要的時候啟動所需要的 Goroutines
?我的答案一直是:受限於工作的型別、你所擁有的計算資源和所處平臺的限制,盲目地使用 Goroutines
將會導致程式執行緩慢,進而傷害整個系統的響應和效能。每個程式、系統和平臺都有短板。不管是記憶體、CPU
或者頻寬資源也都不是無限的。因此對於我們的程式來說,減少資源消耗、重用有限資源是非常重要的。工作池恰好提供了這樣一種樣式,可以幫助程式管理資源,提供調節資源的選項。
原文連結:
https://studygolang.com/articles/14481
原文二維碼:
05
寫在前面
按照一般的設計原則, 每個 HTTP 請求都是無狀態的,因此大多情況下 Web 應用都很容易做水平擴充套件。“無狀態”也意味著 HTTP 請求發起重試的成本是很低的,從而使得 Web 介面的開發很少關註優雅中止(一部分也因為 Web 框架做了這部分的考慮)。
不過,業務中 ① 總會存在對中止比較敏感的介面(比如支付相關),並且 ② 總會存在一些帶狀態的服務,此時優雅中止就顯得比較重要了。
本文透過一個Go 定時任務示例來簡單介紹 Go 技術棧中優雅中止的處理思路。
適用人群
入門——初級√——中級——高階;本文適應初級及以上。
程式碼級支援優雅中止是必要的
優雅中止的含義
所謂“優雅中止”,是指應用接收到特定的中止訊號(比如 INT、TERM)後,不再接受外部的新請求,也不再建立內部的新任務,保持應用行程執行直到舊需求和舊任務執行完成後再終止退出。
原文連結: https://jingwei.link/2019/03/31/golang-graceful-ending.html 原文二維碼:
職位推薦:
【上海】積夢智慧招聘Go工程師
【北京】遊戲公司 Magic Tavern招聘DevOps Engineer
【北京】Aibee招聘後端工程師
招聘詳情地址:https://gocn.vip/explore/category-8
Gopher China 2019 粉絲福利活動入口:
粉絲福利 | 第五屆 Gopher China大會門票福利第三波!
Gopher China 2019大會企業團購通道即將關閉,還未購票的夥伴們抓緊時間啦
朋友會在“發現-看一看”看到你“在看”的內容