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
超级会员免费看
订阅专栏 解锁全文
53

被折叠的 条评论
为什么被折叠?



