iOS--多线程GCD--05

本文介绍了一种用于多核运算的纯C语言中枢调度器——GCD(Grand Central Dispatch),并详细阐述了其在iOS开发中的使用方法。GCD能够自动利用CPU内核,管理线程的生命周期,并通过队列机制来执行任务。文中提供了具体的代码实例,展示了如何在iOS应用程序中使用GCD来下载图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.牛逼的中枢调度器,纯C语言。

2.优势。
1.为多核运算提供的解决方案,他可以自动利用CPU的内核。
2.会自动管理线程的生命周期,创建线程,调度任务,销毁线程。

3.任务:执行什么操作。

4.队列:用来存放任务。

5.GCD使用的两个步骤。
1.定制任务
2.将任务添加到队列中。
1.GCD会自动将队列中的任务取出,放到对应的线程中执行。
2.任务的取出遵循队列原则。

6.执行任务。
这里写图片描述

7.队列的类型。
这里写图片描述

8.

#import "HMViewController.h"

@interface HMViewController ()

@end

@implementation HMViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // dispatch_sync : 同步,不具备开启线程的能力
    // dispatch_async : 异步,具备开启线程的能力

    // 并发队列 :多个任务可以同时执行
    // 串行队列 :一个任务执行完后,再执行下一个任务

    // 获得全局的并发队列
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    // 将 任务 添加 全局队列 中去 异步 执行
    dispatch_async(queue, ^{
        NSLog(@"-----下载图片1---%@", [NSThread currentThread]);
    });
    dispatch_async(queue, ^{
        NSLog(@"-----下载图片2---%@", [NSThread currentThread]);
    });
    dispatch_async(queue, ^{
        NSLog(@"-----下载图片3---%@", [NSThread currentThread]);
    });
    dispatch_async(queue, ^{
        NSLog(@"-----下载图片4---%@", [NSThread currentThread]);
    });
    dispatch_async(queue, ^{
        NSLog(@"-----下载图片5---%@", [NSThread currentThread]);
    });
}

@end
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值