Contents
使用 Go 程式語言透過實用且有趣的範例瞭解有關多執行緒( Multithreading ),並發( Concurrency ) 和平行程式設計( Parallel programming ) 的資訊
從這 4 小時的課程,你會學到
- 探索如何建立自適應的高效能軟體
- 瞭解如何使用多執行緒對某些類型的問題和模擬進行建模
- 使用 Golang 開發高度並行(Concurrent)和平行(Parallel)的程式
- 瞭解平行運算的優勢,侷限性和屬性
- 透過更高階的多執行緒主題提升 Go 語言的程式設計技能
- 學習 goroutine,mutexes,讀寫器鎖,等待群組,通道,條件變數等。
要求
- 有一些使用Go進行程式設計的經驗(如果你知道如何使用函式,迴圈,陣列和一些指標,就足夠了)
- 已安裝最新版本的Go
- 能夠進行50次伏地挺身,同時在每個挺身上喊一個唯一的素數(開個玩笑)。
課程說明
在一家國際投資銀行12樓的會議中,氣氛令人沮喪。 在關鍵的核心應用程式失敗並導致系統範圍內的中斷之後,公司的開發人員開會討論了最佳的解決方案。
“夥計們,我們這裡有一個嚴重的問題。我發現中斷是由我們的程式碼中的競爭狀況( race condition )引起的,是在前一段時間引入的,並在昨晚觸發。” 高階開發人員Mark Adams說。
房間變得安靜了。 在繁華的城市交通中,落地窗外的汽車緩慢而無聲地蠕動。 高階開發人員立即瞭解了情況的嚴重性,意識到他們現在將全天候工作以解決問題並整理資料儲存中的混亂情況。 經驗不足的開發人員瞭解競爭狀況很嚴重,但不知道到底是什麼原因導致的,因此請閉嘴。
最終,交付經理 Brian Holmes 打破了沉默,“該應用程式已經運行了幾個月,沒有任何問題,我們最近還沒有釋出任何程式碼,該軟體怎麼可能崩潰了?!”
每個人都搖搖頭,回到辦公桌前,把Brian獨自留在房間裡,感到困惑。 他拿出手機,搜尋“race condition”。
聽起來有點熟? 你有多少次聽到另一位開發人員在談論使用執行緒和並發(Concurrency)程式設計來解決特定問題,卻出於恐懼而置身於討論之外?
這是高階開發人員永遠不會分享的小祕密…多執行緒程式設計並不比普通程式設計難得多。 開發人員害怕併發程式設計,因為他們認為這是隻有經驗豐富的開發人員才能使用的高階主題。
這遠非真相。 我們的思想非常習慣於處理並發(Concurrency)。 實際上,我們在日常生活中做到這一點沒有任何問題,但是以某種方式我們很難將其轉換為程式碼。 造成這種情況的原因之一是,我們不熟悉可用於管理併發的概念和工具。 本課程旨在幫助你瞭解如何使用多執行緒工具和概念來管理並行程式設計。 它被設計為儘可能實用。 我們從有關並行性的一些理論開始,然後解釋作業系統如何處理多個行程( process )和執行緒。 稍後,我們將繼續透過使用多執行緒解決範例問題來解釋可用的多種工具。
在本課程中,我們將 Google 的 Go 程式語言及其 goroutines 結合使用,但是,此處學習的概念可以應用於大多數程式語言。
本課程中的所有程式碼都可以在github上找到,cutajarj/multithreadingingo
目標受眾
- 希望透過提高技能和學習並發多執行緒程式設計將自己的職業提升到一個新水平的開發人員。
- 當前正在學習平行運算的大學生希望瞭解在課堂上學到的概念與實踐之間的關係。
- 經驗豐富的開發人員最近開始使用Go並希望發現可用的多執行緒工具。
- 交付經理叫 Brian Holmes。
講師簡介
James Cutajar 軟體開發者/作者/講師
James Cutajar是一位軟體開發人員,對可伸縮的高效能運算和分散式演算法感興趣。 他在技術領域的各個行業工作了15年以上。 他還是 Scala 各種影片課程的講師,以及有關資料結構和演算法的書。 在他的職涯中,他一直是講師,開源撰稿人,部落格作者和技術傳播者。 當他不編寫軟體時,他會騎摩托車,衝浪,潛水或飛輕型飛機。 他出生於馬耳他,在倫敦居住了將近十年,現在在葡萄牙工作。
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
- 點選這個✨優惠連結✨ 課程特價 | Udemy 永久擁有課程 NT330 起( 在電腦瀏覽器登入,點選“優惠連結”後再回想要的課程介紹中點選“報名參加課程”即可取得 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現