Goroutine

Golang 排程剖析(二)

關注我們獲得更多內容 回顧本系列的第一部分,重點講述了作業系統排程器的各個方面,這些知識對於理解和分析 Go 排程器的語義是非常重要的。在本文中,我將從語義層面解析 Go 排程器是如何工作的,並重點介

golang原始碼閱讀---tunny協程池的基本實現原理

前段時間因為一個爬蟲專案,最開始做的時候是無腦的一個下載任務就開一個協程,但是後期出現了比較大的記憶體問題,並且下載的效果也不是那麼的好,後面發現是因為協程開的太多了,並且下行的頻寬就只有那麼的大,所以並不能和

效能分析方法論

2018-10-19 有個專案 POC,效能達不到要求。一個小朋友抓了一下火焰圖,感覺 parser 佔的挺高,就吭哧吭哧要優化 parser。這做事方式,沒有講究方法論。 用資料說話,拒絕先入為主

GoLang併發控制(上)

GoLang併發控制(上) 在go程式中,最被人所熟知的便是併發特性,一方面有goroutine這類二級執行緒,對這種不處於使用者態的go程的支援,另一方面便是對併發程式設計的簡便化,可以快捷穩定的寫出支援

Go的棧空間管理

棧空間管理的基本邏輯 go語言通過goroutine提供了併發程式設計支援,goroutine是go執行庫的功能,而不是作業系統執行緒實現的,goroutine可以被理解成一個使用者態的

在 Go 中發現競態條件 (Race Conditions)

當我意識到我一直在處理和解決的問題有一個專有名詞描述的時候,我總會覺得這事十分有趣。這次出現這種情況的是競爭條件(Race Conditions)。當你處理多個 routine 共享某類資源的時候,不可避免的需

Golang多協程併發工作池

本文一個簡單的golang工作池,僅供交流和學習使用。golang工作池的作用是可以限制goroutine的啟動數量。 //NewTask是放到工作池當中執行的函式。使用的時候需要先例項化他 w :

Go 系列文章 10: sync

原文和後續更新: https://github.com/cch123/golang-notes/blob/master/sync.md 線性一致性模型 從原理上來講,atomic 操

Golang channel

本文介紹golang的channel的基礎知識和一些經典的應用正規化. channel 基礎 channel分類 buffered/unbuffered channel 按這個標

goang 錯誤&異常處理機制

基本概念 錯誤:意料之內,可能出的問題, 比如網路連線超時,json解析錯誤等 異常:意料之外,不應該出的問題,比如空指標異常,下標溢位等異常 錯誤處理 golang 使用e

1747317797.1026