go語言多執行緒入入門筆記-基礎
首先go語言號稱新時代的C語言,大家可以想像這句話的含義。
下載go語言要注意平臺和硬體架構,比如linux-AMD64,你能看懂嗎?
go語言裡面預設資料夾的含義比較多,如下,這裡就不再贅述了,大家可以去看《Go併發程式設計實戰 第2版》,這份筆記就是本人學習這本書的記錄。
需要注意,go語言不建議直接在src資料夾裡放自己的程式碼,原因自己去腦補。
go build和go install是常用命令,你知道它們分別是幹什麼的嗎?
感覺go語言在import上與python有異曲同工之處,也許大師們的思路都是一樣的吧。
來一段程式碼,如下:
go語言的賦值是不是很偷懶?一直認為,節約時間,就是節約生命。還有就是nil這種寫法,之前太習慣寫null了。
學習一門語言,個人最喜歡的方式是一邊修改程式,一邊學習,感覺這是最快的方式,不過也有很多人喜歡慢慢琢磨。本書的作者似乎跟我有點像。
go語言還有切片型別,也是陣列的一種,這裡就不詳述了,這種只能用到的時候才能知道了。
沒想到這本書裡把併發程式設計講的如此簡單易懂,推薦沒有併發程式設計基礎的朋友好好研讀一下。
使用者態和核心態的概念很重要,CPU預設是使用者態,與我之前的理所當然的思路有點不同。當然核心態和使用者態可以進行互相轉換,一切都在作業系統的掌握之中。
有一個新概念,競態條件(race condition),解決多個程序訪問同一資源的問題。
另一個概念也做了說明,互斥(mutual exculsion),保證只有一個程序或執行緒在臨界區之內。
管道,是單向的,很重要。
訊號,SIG開頭的,這一節讀的比較快,想看看後面的socket,以後再來詳細讀。
socket,在go語言中也是封裝過的,很好用,如下:
上個通訊的結果圖,大家能猜出程式碼是怎麼寫的嗎?
不早了,今天就到這裡吧,以後有時間繼續看書,請大家耐心等待。。。