3、Swift异步编程:从基础到实践

Swift异步编程:从基础到实践

1. 代码拆分为部分任务

为了优化CPU核心和内存等共享资源,Swift将代码拆分为称为部分任务(partial tasks)或部分(partials)的逻辑单元,这些单元代表了你希望异步运行的代码部分。Swift运行时会分别调度这些部分任务进行异步执行。当每个部分任务完成时,系统会决定是继续执行你的代码还是执行另一个任务。

需要注意的是,每个带有 await 注释的部分任务可能会根据系统的决定在不同的线程上运行。因此,在 await 之后,你不应该对应用程序的状态做出假设,尽管两行代码看起来是依次出现的,但它们通常会在一段时间后才执行。

async/await 是一种简单但功能强大的语法。它让编译器指导你编写安全可靠的代码,同时运行时会优化共享系统资源的协调使用。

1.1 执行部分任务

与传统的闭包语法不同,现代并发语法更加简洁。像 async await let 这样的关键字能清晰地表达你的意图。并发模型的基础是将异步代码拆分为部分任务,并在执行器(Executor)上执行。

目前,Swift的内置执行器仅以异步序列的方式运行任务。不过,已经有关于自定义执行器的提案和正在进行的实现,这将实现更灵活的任务调度。

1.2 控制任务的生命周期

现代并发的一个重要新特性是系统能够管理异步代码的生命周期。旧的多线程API存在一个很大的缺点,即一旦异步代码开始执行

【源码免费下载链接】:https://renmaiwang.cn/s/y8oc2 ### COUNTIF函数的16种公式设置在Excel中,COUNTIF函数是非常实用的一个功能,它可以帮助用户统计满足特定条件的单元格数量。本篇文章将详细介绍COUNTIF函数的16种不同应用场景及其公式设置方法。#### 1. 统计等于特定数值的单元格数量**公式:** `=COUNTIF(DATA,"12")`- **描述:** 此公式用于统计在`DATA`范围内等于数字12的单元格数量。- **应用场景:** 当需要快速找出数据集中特定数值出现的次数时非常有用。#### 2. 统计小于0的单元格数量**公式:** `=COUNTIF(DATA,"<0")`- **描述:** 统计`DATA`范围内所有值小于0的单元格数量。- **应用场景:** 在财务分析或数据分析中,经常需要识别负数的情况。#### 3. 统计不等于0的单元格数量**公式:** `=COUNTIF(DATA,"<>0")`- **描述:** 计算`DATA`范围内所有值不等于0的单元格数量。- **应用场景:** 适用于排除零值的情况,例如在处理收入、支出等数据时。#### 4. 统计大于5的单元格数量**公式:** `=COUNTIF(DATA,">5")`- **描述:** 统计`DATA`范围内所有值大于5的单元格数量。- **应用场景:** 在需要筛选出大于某一阈值的数据时使用。#### 5. 统计等于另一个单元格值的单元格数量**公式:** `=COUNTIF(DATA,A1)`- **描述:** 统计`DATA`范围内等于`A1`单元格值的单元格数量。- **应用场景:** 当标准值会变化时,可以通过这种方式灵活地进行统计。#### 6. 统计大于另一个单元格值的单元格数量**公式:** `=COUNTI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值