Contents
了解使用 Go 程式語言進行並發程式設計( concurrent programming )的優點和缺點
從這 9.5 小時的課程,你會學到
- 了解 Go 使並發程式設計變得簡單的各種方式
- 了解並發的工作原理及其優點和陷阱
- 了解 WaitGroups、互斥體( Mutexes, )和通道的工作原理
- 通過解決經典計算機科學問題並建構真實示例來掌握並發性
要求
- 對 Go 程式語言有很好的理解
- 連接到網際網路的 Windows、Macintosh 或 Linux 電腦
課程說明
Go(通常稱為 Golang)因使並發工作變得非常容易而聞名。 為了讓一個特定的函數同時運行,我們所要做的就是在函數調用前加上“go”這個詞,它就會像 GoRoutine 一樣在後台愉快地運行。 Go 的內建調度程式的作用是確保給定的 GoRoutine 在應該運行的時候運行,並且盡可能高效。
然而,這並不意味著在 Go 中處理並發很簡單- 執行緒安全程式編輯需要仔細規劃,最重要的是,它要求開發人員對 Go 如何處理並發有絕對紮實的理解。
在標準程式庫( library )中,Go 為我們提供了幾種處理程式並發運行部分的方法,就在標準程式庫中:sync.WaitGroup,它讓我們等待任務完成; sync.Mutex,它允許我們鎖定和解鎖資源,這樣兩個 GoRoutines 就不能同時訪問同一記憶體位置; 最後是通道( Channels ),它允許 GoRoutines 相互發送和接收數據。
Go 的並發方法相當簡單,或多或少總結了這句格言:不要通過共享記憶體進行通信;不要通過共享記憶體來進行通信。 替代地,通過通信來共享記憶體。 通道( Channels )是我們通常通過通信來共享記憶體的方式。
在本課程中,我們將詳細介紹 WaitGroups、Mutexes 和 Channels 的使用。 我們還將討論並發中固有的一些問題,包括程式提前終止和競爭條件。 首先,我們將通過解決計算機科學領域中發現的一些經典問題(包括哲學家就餐問題、生產者/消費者問題和沈睡的理髮師問題)來很好地理解這些事情是如何工作的。 這些問題成為經典是有原因的:它們迫使開發人員找出處理並發或並行運行的程式碼的最佳方法。
最後,我們將以一個更“現實世界”的問題來結束課程,我們必須為某種訂閱服務註冊客戶,並處理發票、註冊以及獲得新服務所需的所有事項。 客戶啟動並運行。 當然,我們會通過將必要的任務劃分為較小的任務並讓它們同時運行來盡快完成此任務。
目標受眾
想要了解 Go 如何進行並發程式設計的 Go 程是設計師
講師簡介
Trevor Sawler Ph.D.
我有二十年的專業軟體開發經驗,以及二十年的大學教授經驗。
作為一名企業家,我曾與廣泛的客戶合作,包括湯姆森-尼爾森、惠普、加拿大皇家銀行、Keybank、Sprint以及很多很多其他客戶。我還擁有豐富的管理和專案管理經驗。我曾在數百萬美元的專案中領導由50名開發人員和藝術家組成的團隊,也曾在小得多的專案中領導更小的團隊。
作為一名教授,我曾在各種課程領域授課,包括電腦科學、英語、愛爾蘭和美國文學,以及一些連線文科和技術領域的 “交叉 “課程。
我在資訊科技領域的工作獲得了地區、國家和國際獎項,作為大學教授,我的教學和研究也獲得了獎項。
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
- 點選這個✨優惠連結✨ 課程特價 | Udemy 永久擁有課程 NT330 起( 在電腦瀏覽器登入,點選“優惠連結”後再回想要的課程介紹中點選“報名參加課程”即可取得 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程
也許你會有興趣
- 更多 Go 線上課程介紹
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
- 從 Soft & Share 各種社團頻道挑選你喜歡的加入