新课程预告---《Swift并发编程Async-TaskGroup&Actors》
7月致谢:
7月的骄阳,炙烤大地。同时,也点燃激情似火的心。7月是收获者的前奏,也是体验挥汗如雨的时节。
非常感谢关注丰源天下传媒的朋友们。
苏州丰源天下传媒,以专业的精神,传递知识的态度,录制了Swift并发编程系列视频教程。
戒骄戒躁,在反复校稿、调试代码、审阅、录制、剪辑后,课程《Swift并发编程Async-TaskGroup&Actors》终于能和大家见面。
希望,本套视频课程,可以帮助到从事Apple开发的技术者,以更高的姿态面对开发职业生涯。
为了方便B站的朋友学习到我们的视频教程,我们开通了B站课堂。
当然,《Swift并发编程Async-TaskGroup&Actors》也会在第一时间,进行申请上线。
炎炎夏日,悄悄努力。欢迎购买学习。

课程简介:
文件上传下载、即时聊天、动画处理、资源访问, 、复杂处理分解等的问题,都包含着并发处理的内容。
并发处理无处不在,要求Swift程序员必须认真对待。
并发编程的概念和处理,多而艰深。
Swift的现代并发模型,提升了代码的阅读性和可理解性,让本来复杂的并发编程工作变得轻松愉快。
与此同时,Swift现代并发模型,在概念和程序语法上比较前卫,容易在理解上产生偏差,进而给程序带来不可预测的行为。
Swift的内置定义,大量引入Async-TaskGroup&Actors 概念和处理,除范例中用到的Vapor Web框架外,相信优秀的第三方库也会强势跟进,学习的必要和紧迫性就此产生。
本课程,以概念和实用范例为内容,讨论 async/await , TaskGroup 和 Actors 的概念和应用。
本课程不讨论Runloop 、GCD(Grand Central Dispatch)和NSOperation相关内容细节。在对比的情况下,有可能会提及到。
课程讲解Swift新并发模型知识的同时,给出了大量的实用范例,以帮助观众可以体验到它的灵活和优势。
如何在网络环境下使用Swift新并发模型,本课程使用了三个小项目进行解读说明。
在狼人故事之容错点名APP的讲解中,把Swift并发模型的使用扩展到了服务端。
学习Swift并发模型,对于没有并发编程经验的观众来说,比较困难一些。
为此,在讲解核心概念Actor对象前,开设了6讲并发理论内容,以帮助观众,更加深刻体会和认识并发处理的概念,达到理解Swift新并发模型在并发处理中,抽象和简化工作的意义。
马不停蹄的青春,让我们立即启程。从容面对,Swift中的并发处理问题。

章节和课程内容:
第1讲:前言-关于课程
课程内容:
・视频教程设置内容
・为什么要学习本套视频教程
・本视频的目标观众
・学习本套教程的前置知识
・本视频教程的目标
・版权和免责声明
第2讲:了解iOS并发编程
课程内容:
・并发编程是什么
・并发编程的目标
・并发编程的课题
・iOS提供的并发编程模型
・一切从Swift5.5发生变化
・开发前环境准备
第3讲:SwiftWeb服务端环境构建
课程内容:
・SwiftWeb服务端构建说明
・在MacOS安装Vapor
・学习创建VaporWeb工程
・学习使用Xcode启动Vapor工程
・学习在控制台启动Vapor工程
第4讲:狼人故事之花名册
课程内容:
・狼人花名册APP操作处理流程说明
・学习使用Vapor框架添加WebAPI
・URLSession的使用
・awaitMainActor.run用法
・异步方法定义和调用
第5讲:Async/await语法学习
课程内容:
・关键字async
・关键字await
・关键字asynclet
・关键字Task
第6讲:Task概念及其使用范例
课程内容:
・Task概念-复习
・PartialTask概念
・控制Task生命周期之取消
・获取Task结果
・Task的其他API描述
第7讲:TaskGroup概念及其使用范例
课程内容:
・TaskGroup概念
・TaskGroup种类及其初始化方法
・控制TaskGroup生命周期之取消
・获取TaskGroup结果
・TaskGroup的其他API描述
第8讲:AsyncSequence对象讨论
课程内容:
・复习Sequence和IteratorProtocol协议
・学习AsyncSequence和AsyncIteratorProtocol协议
・理解AsynclineSequence定义
・认识AsyncSequence更多方法
・AsyncSequence的其他API描述
第9讲:TaskLocal注解和MainActor注解
课程内容:
・什么是TaskLocal
・TaskLocal变量使用范例
・MainActor特点
・MainActor使用范例
第10讲:狼人故事之脸谱
课程内容:
・图像(二进制)文件下载概要图
・Vapor服务端启动流程
・服务端工作路径配置技巧
・连续下载和断点续传的处理方式
・Task,TaskLocal,MainActor和asynclet的综合使用
・Task.detached的使用
・View#taskmodifier的使用
・AsyncIterator的使用
・Timer#publisher结合Task进行计时
第11讲:AsyncStream对象讨论
课程内容:
・复习AsyncSequence和AsyncIteratorProtocol协议
・AsyncStream的基本用法
・AsyncStream的缓存策略
・AsyncThrowingStream的使用范例
・AsyncStream#init(unfolding:oncancel:)构造方法
第12讲:Continuation对象讨论
课程内容:
・复习回调(callback)和代理(delegate)模式
・Continuation概念
・Continuation的类型和手动产生方法
・Continuation对回调模式的封装方法
・Continuation对代理模式的封装技巧
第13讲:并发理论-基本概念和描述符号
课程内容:
・顺序过程
・多进程
・处理器和进程
・同步synchronization概念
・常用描述符号和术语
第14讲:并发理论-同步之资源竞争
课程内容:
・计算资源的概念
・计算资源的分配概念
・磁盘读写伪代码说明
・磁盘读写讨论(2个进程下的资源竞争)
第15讲:并发理论-同步之协作
课程内容:
・同步屏障概念
・生产者-消费者协作概念
・生产者-消费者模式不等式
・生产者-消费者模式动态流程图
第16讲:并发理论-饥饿自由和死锁自由
课程内容:
・临界区(Criticalsection)概念
・相互排斥(Mutualexclusion)
・饥饿自由和死锁自由
・进程间的互斥(Mutualexclusion)属性
・锁对象概念
・锁对象的实现讨论
第17讲:并发理论-Peterson算法及其证明
课程内容:
・原子寄存器概念
・原子性操作的意义
・互斥1(FirstComponent)
・互斥2(SecondComponent)
・活锁(livelock)概念
・Peterson算法伪码讲解
・Peterson算法互斥证明
・Peterson算法有限次等待证明
第18讲:并发理论-Peterson算法(多进程)及其证明
课程内容:
・Peterson算法(多进程)伪码讲解
・互斥证明
・饥饿自由证明
・不满足有限次等待
・原子寄存器个数和所需比特位计算
・寄存器访问次数计算
・允许有k个进程在临界区的Peterson算法改进
第19讲:Actor讨论-基本概念
课程内容:
・数据竞争问题
・Actor模型概念
・线程安全示例和调试方法
・Actor使用范例
第20讲:Actor讨论-Sendable协议
课程内容:
・Sendable协议
・结构体和类对Sendable协议的遵循
・Sendable注解
第21讲:Actor讨论-ActorReentrancy分析
课程内容:
・简单计数
・Actor再入调查
・文件下载和缓存Actor分析
・Actor非隔离属性讨论
第22讲:Actor讨论-画面间共享Actor数据
课程内容:
・更新ObservableObject问题
・MainActor.Run线程安全检测
・ActorObservableObject类型
・UI访问ActorObservableObject数据
第23讲:Actor讨论-GlobalActor
课程内容:
・什么是GlobalActor
・GlobalActor协议
・GlobalActor数据类型
・GlobalActor代码示例
・Task在指定的GlobalActor上执行
第24讲:狼人故事之容错点名-字符相似算法介绍
课程内容:
・杰卡德系数-JaccardIndex
・余弦相似度-CosineSimilarity
・汉明距离-HammingDistance
・莱文斯坦Levenshtein距离-EditDistance
・两个字符串发音的相似性-Soundex
第25讲:狼人故事之容错点名-设计和APP演示
课程内容:
・狼人容错点名APP操作处理流程说明
・Vapor中添加数据源文件和WebAPI
・SwiftUI检索Modifer学习
・Vapor启动加载csv文件
・学习Vapor中Task和TaskGroup结合使用
第26讲:Swift新并发模型总结
课程内容:
・课程学习总结
再次感谢关注丰源天下传媒的朋友们。
苏州丰源天下传媒