38、并发编程:从操作队列到 GCD 的优化之旅

并发编程:从操作队列到 GCD 的优化之旅

一、操作队列优化 SlowWorker 应用

在开发应用程序时,我们常常会遇到应用响应缓慢的问题。以 SlowWorker 应用为例,它的单个操作方法会按顺序调用多个其他方法,这些方法的总执行时间过长,导致应用变得无响应。为了解决这个问题,我们可以使用操作队列来实现并发执行。

1. 准备工作

在开始之前,我们需要复制包含 SlowWorker 项目的整个文件夹,因为后续还会用到原始版本的项目。

2. 修改 doWork: 方法

我们主要在 doWork: 方法中进行修改。首先,给一些局部的 NSString 变量添加 __block 存储限定符,这样可以让这些指针在各个块中保持唯一,并且可以被读写。以下是修改后的代码:

- (IBAction)doWork:(id)sender {
    NSDate *startTime = [NSDate date];

    __block NSString *fetchedData;
    __block NSString *processed;
    __block NSString *firstResult;
    __block NSString *secondResult;

    self.isWorking = YES;

    NSBlockOperation *fetch = [NSBlockOperation blockOperationWithBlock:^{
        fetchedData = [self fetchSometh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值