摘要: 深入理解 defer 分上下兩篇文章,本文為上篇,主要介紹如下內容: 為什么需要 defer; defer 語法及語義; defer 使用要點; defer 語句中的函數到底是在 return 語句之后被調用還是 return 語句之前被調用。 為什么需要 defer; defer 語法及語義; d閱讀全文
posted @ 2019-06-19 08:48 愛寫程序的阿波張 閱讀(364) 評論(0) 編輯
摘要: 本文主要分析為什么TIME_WAIT狀態的持續時間是2MSL而不是1MSL,3MSL或其它的時長,而不會詳細描述為什么需要TIME_WAIT狀態。 閱讀本文需要的預備知識: 了解TCP協議的狀態變遷; 了解TCP拆鏈的四次揮手過程; 了解為什么需要TIME_WAIT狀態。 了解TCP協議的狀態變遷;閱讀全文
posted @ 2019-06-04 17:02 愛寫程序的阿波張 閱讀(168) 評論(1) 編輯
摘要: 本文是《Go語言調度器源代碼情景分析》系列的第20篇,也是第五章《主動調度》的第1小節。 Goroutine的主動調度是指當前正在運行的goroutine通過直接調用runtime.Gosched()函數暫時放棄運行而發生的調度。 主動調度完全是用戶代碼自己控制的,我們根據代碼就可以預見什么地方一定閱讀全文
posted @ 2019-05-28 16:40 愛寫程序的阿波張 閱讀(143) 評論(0) 編輯
摘要: 本文是《Go語言調度器源代碼情景分析》系列的第19篇,也是第四章《Goroutine被動調度》的第2小節。 本文需要重點關注: 如何喚醒睡眠中的工作線程 如何創建新的工作線程 如何喚醒睡眠中的工作線程 如何創建新的工作線程 上一篇文章我們分析到了ready函數通過把需要喚醒的goroutine放入運閱讀全文
posted @ 2019-05-24 10:44 愛寫程序的阿波張 閱讀(120) 評論(0) 編輯
摘要: 本文是《Go語言調度器源代碼情景分析》系列的第18篇,也是第四章《Goroutine被動調度》的第1小節。 前一章我們詳細分析了調度器的調度策略,即調度器如何選取下一個進入運行的goroutine,但我們還不清楚什么時候以及什么情況下會發生調度,從這一章開始我們就來討論這個問題。 總體說來,go語言閱讀全文
posted @ 2019-05-22 16:32 愛寫程序的阿波張 閱讀(91) 評論(0) 編輯
摘要: 序言 最近一位非常熱心的網友建議結合demo來分析一下goroutine的調度器,而且還提供了一個demo代碼,于是便有了本文,在此對這位網友表示衷心的感謝! 這位網友提供的demo程序可能有的gopher以前見過,已經知道了具體原因,但本文假定我們是第一次遇到這種問題,然后從零開始,通過一步一步的閱讀全文
posted @ 2019-05-20 09:08 愛寫程序的阿波張 閱讀(277) 評論(1) 編輯
摘要: 本文是《Go語言調度器源代碼情景分析》系列的第17篇,也是第三章《Goroutine調度策略》的第2小節。 上一小節我們分析了從全局運行隊列與工作線程的本地運行隊列獲取goroutine的過程,這一小節我們繼續分析因無法從上述兩個隊列中拿到需要運行的goroutine而導致的從其它工作線程的本地運行閱讀全文
posted @ 2019-05-17 15:30 愛寫程序的阿波張 閱讀(164) 評論(0) 編輯
摘要: 本文是《Go語言調度器源代碼情景分析》系列的第16篇,也是第三章《Goroutine調度策略》的第1小節。 在調度器概述一節我們提到過,所謂的goroutine調度,是指程序代碼按照一定的算法在適當的時候挑選出合適的goroutine并放到CPU上去運行的過程。這句話揭示了調度系統需要解決的三大核心閱讀全文
posted @ 2019-05-15 08:37 愛寫程序的阿波張 閱讀(126) 評論(0) 編輯
摘要: 本文是《Go語言調度器源代碼情景分析》系列的第15篇,也是第二章的第5小節。 上一節我們說過main goroutine退出時會直接執行exit系統調用退出整個進程,而非main goroutine退出時則會進入goexit函數完成最后的清理工作,本小節我們首先就來驗證一下非main gorouti閱讀全文
posted @ 2019-05-13 15:23 愛寫程序的阿波張 閱讀(42) 評論(0) 編輯
摘要: 本文是《Go語言調度器源代碼情景分析》系列的第14篇,也是第二章的第4小節。 上一節我們通過分析main goroutine的創建詳細討論了goroutine的創建及初始化流程,這一節我們接著來分析調度器如何把main goroutine調度到CPU上去運行。本節需要重點關注的問題有: 如何保存g0閱讀全文
posted @ 2019-05-09 15:29 愛寫程序的阿波張 閱讀(210) 評論(0) 編輯
内部期期公开一波中特