新課程預(yù)告---《Swift并發(fā)編程Async-TaskGroup&Actors》
7月致謝:
? ? 7月的驕陽,炙烤大地。同時(shí),也點(diǎn)燃激情似火的心。7月是收獲者的前奏,也是體驗(yàn)揮汗如雨的時(shí)節(jié)。
? ? 非常感謝關(guān)注豐源天下傳媒的朋友們。
? ? 蘇州豐源天下傳媒,以專業(yè)的精神,傳遞知識(shí)的態(tài)度,錄制了Swift并發(fā)編程系列視頻教程。
? ? 戒驕戒躁,在反復(fù)校稿、調(diào)試代碼、審閱、錄制、剪輯后,課程《Swift并發(fā)編程Async-TaskGroup&Actors》終于能和大家見面。
? ? 希望,本套視頻課程,可以幫助到從事Apple開發(fā)的技術(shù)者,以更高的姿態(tài)面對(duì)開發(fā)職業(yè)生涯。
? ? 為了方便B站的朋友學(xué)習(xí)到我們的視頻教程,我們開通了B站課堂。
? ? 當(dāng)然,《Swift并發(fā)編程Async-TaskGroup&Actors》也會(huì)在第一時(shí)間,進(jìn)行申請(qǐng)上線。
? ??炎炎夏日,悄悄努力。歡迎購買學(xué)習(xí)。

課程簡介:
? ? 文件上傳下載、即時(shí)聊天、動(dòng)畫處理、資源訪問, 、復(fù)雜處理分解等的問題,都包含著并發(fā)處理的內(nèi)容。
? ? 并發(fā)處理無處不在,要求Swift程序員必須認(rèn)真對(duì)待。
? ? 并發(fā)編程的概念和處理,多而艱深。
? ? Swift的現(xiàn)代并發(fā)模型,提升了代碼的閱讀性和可理解性,讓本來復(fù)雜的并發(fā)編程工作變得輕松愉快。
? ? 與此同時(shí),Swift現(xiàn)代并發(fā)模型,在概念和程序語法上比較前衛(wèi),容易在理解上產(chǎn)生偏差,進(jìn)而給程序帶來不可預(yù)測(cè)的行為。
? ? Swift的內(nèi)置定義,大量引入Async-TaskGroup&Actors 概念和處理,除范例中用到的Vapor Web框架外,相信優(yōu)秀的第三方庫也會(huì)強(qiáng)勢(shì)跟進(jìn),學(xué)習(xí)的必要和緊迫性就此產(chǎn)生。
? ? 本課程,以概念和實(shí)用范例為內(nèi)容,討論 async/await , TaskGroup 和 Actors 的概念和應(yīng)用。
? ? 本課程不討論Runloop 、GCD(Grand Central Dispatch)和NSOperation相關(guān)內(nèi)容細(xì)節(jié)。在對(duì)比的情況下,有可能會(huì)提及到。
? ? 課程講解Swift新并發(fā)模型知識(shí)的同時(shí),給出了大量的實(shí)用范例,以幫助觀眾可以體驗(yàn)到它的靈活和優(yōu)勢(shì)。
? ? 如何在網(wǎng)絡(luò)環(huán)境下使用Swift新并發(fā)模型,本課程使用了三個(gè)小項(xiàng)目進(jìn)行解讀說明。
? ? 在狼人故事之容錯(cuò)點(diǎn)名APP的講解中,把Swift并發(fā)模型的使用擴(kuò)展到了服務(wù)端。
? ? 學(xué)習(xí)Swift并發(fā)模型,對(duì)于沒有并發(fā)編程經(jīng)驗(yàn)的觀眾來說,比較困難一些。
? ? 為此,在講解核心概念A(yù)ctor對(duì)象前,開設(shè)了6講并發(fā)理論內(nèi)容,以幫助觀眾,更加深刻體會(huì)和認(rèn)識(shí)并發(fā)處理的概念,達(dá)到理解Swift新并發(fā)模型在并發(fā)處理中,抽象和簡化工作的意義。
? ? 馬不停蹄的青春,讓我們立即啟程。從容面對(duì),Swift中的并發(fā)處理問題。

章節(jié)和課程內(nèi)容:
第1講:前言-關(guān)于課程
課程內(nèi)容:
?視頻教程設(shè)置內(nèi)容
?為什么要學(xué)習(xí)本套視頻教程
?本視頻的目標(biāo)觀眾
?學(xué)習(xí)本套教程的前置知識(shí)
?本視頻教程的目標(biāo)
?版權(quán)和免責(zé)聲明
第2講:了解iOS并發(fā)編程
課程內(nèi)容:
?并發(fā)編程是什么
?并發(fā)編程的目標(biāo)
?并發(fā)編程的課題
?iOS提供的并發(fā)編程模型
?一切從Swift5.5發(fā)生變化
?開發(fā)前環(huán)境準(zhǔn)備
第3講:SwiftWeb服務(wù)端環(huán)境構(gòu)建
課程內(nèi)容:
?SwiftWeb服務(wù)端構(gòu)建說明
?在MacOS安裝Vapor
?學(xué)習(xí)創(chuàng)建VaporWeb工程
?學(xué)習(xí)使用Xcode啟動(dòng)Vapor工程
?學(xué)習(xí)在控制臺(tái)啟動(dòng)Vapor工程
第4講:狼人故事之花名冊(cè)
課程內(nèi)容:
?狼人花名冊(cè)APP操作處理流程說明
?學(xué)習(xí)使用Vapor框架添加WebAPI
?URLSession的使用
?awaitMainActor.run用法
?異步方法定義和調(diào)用
第5講:Async/await語法學(xué)習(xí)
課程內(nèi)容:
?關(guān)鍵字async
?關(guān)鍵字await
?關(guān)鍵字asynclet
?關(guān)鍵字Task
第6講:Task概念及其使用范例
課程內(nèi)容:
?Task概念-復(fù)習(xí)
?PartialTask概念
?控制Task生命周期之取消
?獲取Task結(jié)果
?Task的其他API描述
第7講:TaskGroup概念及其使用范例
課程內(nèi)容:
?TaskGroup概念
?TaskGroup種類及其初始化方法
?控制TaskGroup生命周期之取消
?獲取TaskGroup結(jié)果
?TaskGroup的其他API描述
第8講:AsyncSequence對(duì)象討論
課程內(nèi)容:
?復(fù)習(xí)Sequence和IteratorProtocol協(xié)議
?學(xué)習(xí)AsyncSequence和AsyncIteratorProtocol協(xié)議
?理解AsynclineSequence定義
?認(rèn)識(shí)AsyncSequence更多方法
?AsyncSequence的其他API描述
第9講:TaskLocal注解和MainActor注解
課程內(nèi)容:
?什么是TaskLocal
?TaskLocal變量使用范例
?MainActor特點(diǎn)
?MainActor使用范例
第10講:狼人故事之臉譜
課程內(nèi)容:
?圖像(二進(jìn)制)文件下載概要圖
?Vapor服務(wù)端啟動(dòng)流程
?服務(wù)端工作路徑配置技巧
?連續(xù)下載和斷點(diǎn)續(xù)傳的處理方式
?Task,TaskLocal,MainActor和asynclet的綜合使用
?Task.detached的使用
?View#taskmodifier的使用
?AsyncIterator的使用
?Timer#publisher結(jié)合Task進(jìn)行計(jì)時(shí)
第11講:AsyncStream對(duì)象討論
課程內(nèi)容:
?復(fù)習(xí)AsyncSequence和AsyncIteratorProtocol協(xié)議
?AsyncStream的基本用法
?AsyncStream的緩存策略
?AsyncThrowingStream的使用范例
?AsyncStream#init(unfolding:oncancel:)構(gòu)造方法
第12講:Continuation對(duì)象討論
課程內(nèi)容:
?復(fù)習(xí)回調(diào)(callback)和代理(delegate)模式
?Continuation概念
?Continuation的類型和手動(dòng)產(chǎn)生方法
?Continuation對(duì)回調(diào)模式的封裝方法
?Continuation對(duì)代理模式的封裝技巧
第13講:并發(fā)理論-基本概念和描述符號(hào)
課程內(nèi)容:
?順序過程
?多進(jìn)程
?處理器和進(jìn)程
?同步synchronization概念
?常用描述符號(hào)和術(shù)語
第14講:并發(fā)理論-同步之資源競(jìng)爭(zhēng)
課程內(nèi)容:
?計(jì)算資源的概念
?計(jì)算資源的分配概念
?磁盤讀寫偽代碼說明
?磁盤讀寫討論(2個(gè)進(jìn)程下的資源競(jìng)爭(zhēng))
第15講:并發(fā)理論-同步之協(xié)作
課程內(nèi)容:
?同步屏障概念
?生產(chǎn)者-消費(fèi)者協(xié)作概念
?生產(chǎn)者-消費(fèi)者模式不等式
?生產(chǎn)者-消費(fèi)者模式動(dòng)態(tài)流程圖
第16講:并發(fā)理論-饑餓自由和死鎖自由
課程內(nèi)容:
?臨界區(qū)(Criticalsection)概念
?相互排斥(Mutualexclusion)
?饑餓自由和死鎖自由
?進(jìn)程間的互斥(Mutualexclusion)屬性
?鎖對(duì)象概念
?鎖對(duì)象的實(shí)現(xiàn)討論
第17講:并發(fā)理論-Peterson算法及其證明
課程內(nèi)容:
?原子寄存器概念
?原子性操作的意義
?互斥1(FirstComponent)
?互斥2(SecondComponent)
?活鎖(livelock)概念
?Peterson算法偽碼講解
?Peterson算法互斥證明
?Peterson算法有限次等待證明
第18講:并發(fā)理論-Peterson算法(多進(jìn)程)及其證明
課程內(nèi)容:
?Peterson算法(多進(jìn)程)偽碼講解
?互斥證明
?饑餓自由證明
?不滿足有限次等待
?原子寄存器個(gè)數(shù)和所需比特位計(jì)算
?寄存器訪問次數(shù)計(jì)算
?允許有k個(gè)進(jìn)程在臨界區(qū)的Peterson算法改進(jìn)
第19講:Actor討論-基本概念
課程內(nèi)容:
?數(shù)據(jù)競(jìng)爭(zhēng)問題
?Actor模型概念
?線程安全示例和調(diào)試方法
?Actor使用范例
第20講:Actor討論-Sendable協(xié)議
課程內(nèi)容:
?Sendable協(xié)議
?結(jié)構(gòu)體和類對(duì)Sendable協(xié)議的遵循
?Sendable注解
第21講:Actor討論-ActorReentrancy分析
課程內(nèi)容:
?簡單計(jì)數(shù)
?Actor再入調(diào)查
?文件下載和緩存Actor分析
?Actor非隔離屬性討論
第22講:Actor討論-畫面間共享Actor數(shù)據(jù)
課程內(nèi)容:
?更新ObservableObject問題
?MainActor.Run線程安全檢測(cè)
?ActorObservableObject類型
?UI訪問ActorObservableObject數(shù)據(jù)
第23講:Actor討論-GlobalActor
課程內(nèi)容:
?什么是GlobalActor
?GlobalActor協(xié)議
?GlobalActor數(shù)據(jù)類型
?GlobalActor代碼示例
?Task在指定的GlobalActor上執(zhí)行
第24講:狼人故事之容錯(cuò)點(diǎn)名-字符相似算法介紹
課程內(nèi)容:
?杰卡德系數(shù)-JaccardIndex
?余弦相似度-CosineSimilarity
?漢明距離-HammingDistance
?萊文斯坦Levenshtein距離-EditDistance
?兩個(gè)字符串發(fā)音的相似性-Soundex
第25講:狼人故事之容錯(cuò)點(diǎn)名-設(shè)計(jì)和APP演示
課程內(nèi)容:
?狼人容錯(cuò)點(diǎn)名APP操作處理流程說明
?Vapor中添加數(shù)據(jù)源文件和WebAPI
?SwiftUI檢索Modifer學(xué)習(xí)
?Vapor啟動(dòng)加載csv文件
?學(xué)習(xí)Vapor中Task和TaskGroup結(jié)合使用
第26講:Swift新并發(fā)模型總結(jié)
課程內(nèi)容:
?課程學(xué)習(xí)總結(jié)
再次感謝關(guān)注豐源天下傳媒的朋友們。
? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?蘇州豐源天下傳媒