七牛雲 GO 語言週報 七月第 2 期

2022-03-03 01:58:20 字數 1490 閱讀 5394

上週的週報中,我們介紹了 go 語言的排名已經進入到前十。那麼世界上到底有多少 gopher 呢?

作者列出了以下計算公式:

gopher 數量 = 全世界的開發者數量 * 使用 go 語言的軟體佔所有軟體的比例

還有不到乙個月,go 1.9版本也要正式發布了(計畫 8 月份發布),當前 go 1.9 的最新版本是 go1.9 beta2,本篇的實驗環境也是基於該版本的,估計與最終 go 1.9 版本不會有太大差異了。在今年的 gopherchina 大會上,作者曾提到:go 已經演進到1.9,接下來是 go 1.10 還是 go 2? 現在答案已經揭曉:go 1.10。

言歸正傳,我們還是來看看 go 1.9 究竟有哪些值得我們關注的變化。

go 排程器的功能是分配多個 os 執行緒,使其在乙個或多個處理器上執行時能順利使用 goroutine。 在多執行緒運算排程過程中,工作分享和工作竊取往往同時發生。從 go 1.1 開始,golang 核心開發者 dmitry vyukov 就已經上傳了 go 工作竊取演算法的排程器。本文將進一步深度解釋 go 工作竊取演算法排程器的原理,以及如何用 go 語言實現排程器的功能。

本文作者 mitchell hashimoto ,是美國資料中心管理技術研發公司 hashicorp 的聯合創始人之一。他開發了 vagrant, packer, terraform, consul, vault 等一系列實用的開發工具。

從 go 1.0 開始,mitchell就開始使用 go 語言程式設計,逐漸地,他開始著迷於自動化的實現。作為 o』reilly 的作者之一,他在 github 上成為了擁有無數粉絲的核心使用者。在 hashicorp 公司的業務中,go 語言無處不在,並在過去 5 年中成為了第一語言。

mitchell hashimoto 在本文中講解了 go 高階測試方式

在 go 1.6 之前, 內建的 map 型別是部分 goroutine 安全的,併發的讀沒有問題,併發的寫可能有問題。自 go 1.6 之後, 併發地讀寫 map 會報錯,這在一些知名的開源庫中都存在這個問題,所以 go 1.9 之前的解決方案是額外繫結乙個鎖,封裝成乙個新的struct或者單獨使用鎖都可以。

本文帶你深入到 sync.map 的具體實現中,看看為了增加乙個功能,**是如何變的複雜的,以及作者在實現 sync.map 的一些思想。

推薦閱讀:

盛夏七月,歡迎來京城看「火燒雲」

公共雲 私有雲 混合雲,在經歷了概念的洗禮和技術的錘煉後,各家企業的cto們開始靜下心來準備採擷 雲朵 7月25日至26日,工業和資訊化部指導,中國資訊通訊研究院和中國通訊標準化協會主辦,資料中心聯盟和雲計算開源產業聯盟承辦的2017可信雲大會將為企業高層的最終決策再填幾把火,帶你領略京城盛夏的 火...

yii2配置七牛雲上傳檔案

1.請在你的yii2框架下的composer.json檔案require處新增如下配置 crazyfd yii2 qiniu dev master 2.composer update 3.用法如下 ak和 sk在七牛個人中心的金鑰管理可以檢視 domain為你在七牛配置的加速網域名稱 與 bucke...

技術猩球 七牛雲姜智 Go 演進之路

姜智,七牛雲qcdn技術經理,曾就職於朗訊 中興。具備十餘年服務端研發經驗和多年的團隊管理經驗。對高可用 高效能服務端開發和微服務架構有深入理解。一直深耕於業務一線,致力於將對技術和架構的理解,在業務場景中完美落地。如果說在雲計算的時代裡,沒有人可以錯過 go 語言 那麼在 go 語言的領域裡,沒有...