Go語(yǔ)言并發(fā)編程實(shí)戰(zhàn)課程
培訓(xùn)對(duì)象:
Go語(yǔ)言開(kāi)發(fā)者;后端開(kāi)發(fā)工程師;云原生應(yīng)用開(kāi)發(fā)者;以及希望掌握Go并發(fā)模型與高性能編程的技術(shù)人員。
培訓(xùn)目標(biāo):
使學(xué)員全面掌握Go語(yǔ)言的并發(fā)編程模型與核心技術(shù),能夠設(shè)計(jì)實(shí)現(xiàn)高并發(fā)、高可用的后端系統(tǒng)。精通goroutine的調(diào)度原理、channel的通信機(jī)制、select多路復(fù)用、sync包同步原語(yǔ)。掌握并發(fā)模式(工作池、扇入扇出、流水線)、并發(fā)安全編程、性能調(diào)優(yōu)等進(jìn)階技能。具備獨(dú)立開(kāi)發(fā)高性能并發(fā)服務(wù)的實(shí)戰(zhàn)能力。
培訓(xùn)內(nèi)容介紹:
-
Go并發(fā)模型概述:講解并發(fā)與并行的區(qū)別,Go語(yǔ)言的并發(fā)哲學(xué)(不要通過(guò)共享內(nèi)存來(lái)通信,而應(yīng)該通過(guò)通信來(lái)共享內(nèi)存)。介紹GMP調(diào)度模型(goroutine、processor、machine)的基本原理。
-
goroutine基礎(chǔ):學(xué)習(xí)使用go關(guān)鍵字啟動(dòng)goroutine。掌握runtime包的基本函數(shù)(GOMAXPROCS、NumGoroutine、Goexit)。理解主goroutine與子goroutine的關(guān)系。演練簡(jiǎn)單的并發(fā)任務(wù)。
-
channel基礎(chǔ):講解channel的類(lèi)型(有緩沖、無(wú)緩沖)、創(chuàng)建(make)、發(fā)送(<-)、接收(<-)操作。理解無(wú)緩沖channel的同步特性,有緩沖channel的異步特性。演練使用channel在goroutine間傳遞數(shù)據(jù)。
-
select多路復(fù)用:學(xué)習(xí)select語(yǔ)句的語(yǔ)法與執(zhí)行規(guī)則(隨機(jī)選擇可用的case)。掌握使用select處理多個(gè)channel的讀寫(xiě)操作。實(shí)現(xiàn)超時(shí)控制(結(jié)合time.After)。演練多路數(shù)據(jù)匯聚的場(chǎng)景。
-
range遍歷channel:學(xué)習(xí)使用for range循環(huán)遍歷channel,理解遍歷結(jié)束的條件(channel關(guān)閉)。掌握使用close關(guān)閉channel,以及關(guān)閉后的行為(接收零值)。演練生產(chǎn)者-消費(fèi)者模型。
-
同步原語(yǔ)(sync包):學(xué)習(xí)使用sync.WaitGroup等待一組goroutine完成。掌握sync.Mutex與sync.RWMutex保護(hù)共享資源。了解sync.Once確保單次執(zhí)行、sync.Cond條件變量。演練并發(fā)計(jì)數(shù)器、并發(fā)緩存。
-
原子操作:學(xué)習(xí)使用sync/atomic包進(jìn)行原子操作(Add、Load、Store、Swap、CompareAndSwap)。理解原子操作與互斥鎖的性能差異與適用場(chǎng)景。演練實(shí)現(xiàn)無(wú)鎖計(jì)數(shù)器。
-
并發(fā)模式:工作池:講解工作池(worker pool)模式的設(shè)計(jì)思想(任務(wù)分發(fā)、結(jié)果收集)。使用channel實(shí)現(xiàn)固定數(shù)量的工作goroutine處理任務(wù)隊(duì)列。演練實(shí)現(xiàn)并發(fā)任務(wù)處理器。
-
并發(fā)模式:扇入扇出:學(xué)習(xí)扇出(fan-out)將任務(wù)分發(fā)給多個(gè)goroutine,扇入(fan-in)收集多個(gè)channel的結(jié)果。使用select與merge函數(shù)實(shí)現(xiàn)多路結(jié)果匯聚。演練實(shí)現(xiàn)并發(fā)爬蟲(chóng)的數(shù)據(jù)匯聚。
-
并發(fā)模式:流水線:講解流水線(pipeline)模式的設(shè)計(jì)思想(階段處理、channel連接)。實(shí)現(xiàn)多階段的處理流水線,每個(gè)階段由一組goroutine并行處理。演練實(shí)現(xiàn)圖像處理流水線。
-
并發(fā)安全與競(jìng)態(tài)檢測(cè):講解數(shù)據(jù)競(jìng)態(tài)(data race)的概念與危害。學(xué)習(xí)使用go run -race進(jìn)行競(jìng)態(tài)檢測(cè)。掌握并發(fā)安全的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)方法。演練修復(fù)存在數(shù)據(jù)競(jìng)態(tài)的代碼。
-
完整并發(fā)項(xiàng)目實(shí)戰(zhàn):設(shè)計(jì)并實(shí)現(xiàn)一個(gè)高并發(fā)項(xiàng)目(如實(shí)時(shí)聊天系統(tǒng)、并發(fā)文件處理工具、高性能日志收集器)。綜合運(yùn)用goroutine、channel、select、同步原語(yǔ),實(shí)現(xiàn)高吞吐、低延遲的并發(fā)系統(tǒng)。
如果您想學(xué)習(xí)本課程,請(qǐng)
預(yù)約報(bào)名
如果沒(méi)找到合適的課程或有特殊培訓(xùn)需求,請(qǐng)
訂制培訓(xùn)
除培訓(xùn)外,同時(shí)提供相關(guān)技術(shù)咨詢與技術(shù)支持服務(wù),有需求請(qǐng)發(fā)需求表到郵箱soft@info-soft.cn,或致電4007991916
技術(shù)服務(wù)需求表點(diǎn)擊在線申請(qǐng)
服務(wù)特點(diǎn):
海量專家資源,精準(zhǔn)匹配相關(guān)行業(yè),相關(guān)項(xiàng)目專家,針對(duì)實(shí)際需求,顧問(wèn)式咨詢,互動(dòng)式授課,案例教學(xué),小班授課,實(shí)際項(xiàng)目演示,快捷高效,省時(shí)省力省錢(qián)。
專家力量:
中國(guó)科學(xué)院軟件研究所,計(jì)算研究所高級(jí)研究人員
oracle,微軟,vmware,MSC,Ansys,candence,Altium,達(dá)索等大型公司高級(jí)工程師,項(xiàng)目經(jīng)理,技術(shù)支持專家
中科信軟培訓(xùn)中心,資深專家或講師
大多名牌大學(xué),碩士以上學(xué)歷,相關(guān)技術(shù)專業(yè),理論素養(yǎng)豐富
多年實(shí)際項(xiàng)目經(jīng)歷,大型項(xiàng)目實(shí)戰(zhàn)案例,熱情,樂(lè)于技術(shù)分享
針對(duì)客戶實(shí)際需求,案例教學(xué),互動(dòng)式溝通,學(xué)有所獲