博客 / 列表

爆裂Gopher - 反轉鏈表的兩種解法

反轉鏈表可以用兩種方法來實現,一種是常見的迭代法,還有一種方法就是遞歸,下面來分析一下具體是怎麼實現的。 迭代法 思路: 初始化一個變量來存儲前驅節點pre,從頭節點開始遍歷鏈表,每遍歷一個節點,就將該節點的後驅節點指向pre,完成了反轉,然後更新pre的值為當前節點以便下一個節點的使用,遍歷完以後以前的尾節點就是新的頭節點。 func (head *Node) reverse() *Node {

遞歸 , 算法 , 鏈表 , go

爆裂Gopher - 淺談Goroutine的調度機制

一、什麼是Goroutine 在go語言中,每一個併發的執行單元叫作一個goroutine,與併發相對的是串行,即代碼按照順序一行一行執行,goroutine 給 go 語言提供了併發編程的能力。 當一個程序啓動時,其主函數在一個單獨的goroutine中運行,我們叫它main goroutine,新的goroutine會用go語句來創建。在語法上,go語句是一個普通的函數或方法調用前加上關鍵字g

調度器 , goroutine , 協程 , gmp , go