iOS之GCD简单了解使用

4 篇文章 0 订阅

Grand Central Dispatch简称GCD

1.任务,即操作分俩种 : 同步执行和异步执行(在GCD中就是一个block)
同步(sync)和异步(async)的主要区别在于会不会阻碍当前线程,知道block结束
如果是同步(sync)操作,会阻碍当前线程并等待block结束,然后才会继续往下执行,如果是异步(async)操作,当先线程会直接往下执行,它不会阻碍当前线程

2.队列:用于存放任务,俩种:串行队列和并行队列
串行队列是根据队列定义FIFO一个一个执行,并行队列则同时进行,注意:如果系统资源不足,任务却很多,并行也不会执行

3.主队列是一个特殊的串行队列,一般用于刷新UI
dispatch_queue_t queue = ispatch_get_main_queue();

4.自己创建队列
自己可以创建 串行队列, 也可以创建 并行队列。看下面的代码(代码已更新),它有两个参数,第一个上面已经说了,第二个才是最重要的。第二个参数用来表示创建的队列是串行的还是并行的,传入 DISPATCH_QUEUE_SERIAL 或 NULL 表示创建串行队列。传入 DISPATCH_QUEUE_CONCURRENT 表示创建并行队。。

//OBJECTIVE-C
//串行队列
dispatch_queue_t queue = dispatch_queue_create(“tk.bourne.testQueue”, NULL);
dispatch_queue_t queue = dispatch_queue_create(“tk.bourne.testQueue”, DISPATCH_QUEUE_SERIAL);
//并行队列
dispatch_queue_t queue = dispatch_queue_create(“tk.bourne.testQueue”, DISPATCH_QUEUE_COURRENT)

5.
下面的是系统的一个并发队列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

6.组
//1.创建队列组
dispatch_group_t group = dispatch_group_create();
//2.创建队列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

//3.多次使用队列组的方法执行任务, 只有异步方法
//3.1.执行3次循环
dispatch_group_async(group, queue, ^{
for (NSInteger i = 0; i < 3; i++) {
NSLog(@”group-01 - %@”, [NSThread currentThread]);
}
});

//3.2.主队列执行8次循环
dispatch_group_async(group, dispatch_get_main_queue(), ^{
for (NSInteger i = 0; i < 8; i++) {
NSLog(@”group-02 - %@”, [NSThread currentThread]);
}
});

//3.3.执行5次循环
dispatch_group_async(group, queue, ^{
for (NSInteger i = 0; i < 5; i++) {
NSLog(@”group-03 - %@”, [NSThread currentThread]);
}
});

//4.都完成后会自动通知
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
NSLog(@”完成 - %@”, [NSThread currentThread]);
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值