17、Swift并发编程:共享可变状态与Actor的应用

Swift并发编程:共享可变状态与Actor的应用

1. 共享可变状态问题引入

在一个场景中,当我们走进一家酒吧,能看到一些明显的变化。Jen在吧台后面调制饮品,我们觉得这里看起来比之前好多了,但Edges对此表示怀疑,认为实际情况可能并非如此。当我们下单后,服务员将订单交给跑堂,跑堂把订单送到吧台并向Jen大声报单,与此同时,另一个跑堂也来报单。Edges指出,Jen应该一次只接收一个订单。

在编程中,我们也面临类似的共享可变状态问题。我们以AppIcons项目为例,来探讨如何处理共享可变状态。

2. ProgressMonitor类的创建与使用

首先,我们在Controllers组中找到一个名为 ProgressMonitor 的空类。这个类有三个属性:
- searchTerm :用户输入的搜索关键词,是一个 let 常量,在创建 ProgressMonitor 实例时设置。
- total :原始请求返回的应用总数,也是需要下载的图片总数,初始值为0。
- downloaded :已下载的图片数量,初始值为0。

以下是 ProgressMonitor 类的代码实现:

class ProgressMonitor {
  let searchTerm: String
  private(set) var total = 0
  p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值