多线程——GCD(并发)

原创 2015年11月21日 00:24:57
  • 以先进先出的方式,并发调度队列中的任务执行
  • 如果当前调度的任务是同步执行的,会等待任务执行完成后,再调度后续的任务
  • 如果当前调度的任务是异步执行的,同时底层线程池有可用的线程资源,会再新的线程调度后续任务的执行

并发队列 同步执行任务
不开线程 顺序执行

- (void)gcdDemo1
{
    dispatch_queue_t queue = dispatch_queue_create("czy", DISPATCH_QUEUE_CONCURRENT);
    //异步执行任务
    for (NSInteger index = 0; index < 10; index ++)
    {
        dispatch_sync(queue, ^{
            NSLog(@"%zd---%@",index,[NSThread currentThread]);
        });
    }
    NSLog(@"end");
}

并发队列 异步执行任务
开线程 无序的执行

- (void)gcdDemo2
{
   dispatch_queue_t queue = dispatch_queue_create("czy", DISPATCH_QUEUE_CONCURRENT);
    //异步执行任务
    for (NSInteger index = 0; index < 10; index ++)
    {
        dispatch_async(queue, ^{
            NSLog(@"%zd---%@",index,[NSThread currentThread]);
        });
    }
    NSLog(@"end");
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS开发网络篇:GCD实战之多个网络请求的并发

GCD之多个网络请求的并发 // 创建信号量 dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); // ...
  • Yj_sail
  • Yj_sail
  • 2017年04月14日 17:21
  • 1375

多线程编程4 - GCD

一、简介 在iOS所有实现多线程的方案中,GCD应该是最有魅力的,因为GCD本身是苹果公司为多核的并行运算提出的解决方案。GCD在工作时会自动利用更多的处理器核心,以充分利用更强大的机器。GCD是G...
  • q199109106q
  • q199109106q
  • 2013年02月03日 00:26
  • 71740

Swift3.0 GCD多线程详解

iOS10+ Swift3.0 DispatchQueue DispatchGroup 多线程
  • brycegao321
  • brycegao321
  • 2016年12月27日 22:52
  • 5780

GCD实践——串行队列/并发队列与iOS多线程详解

1.串行队列一次只执行一个线程,按照添加到队列的顺序依次执行; 2.并发队列一次可以执行多个线程,线程的执行没有先后顺序; 3.UI界面所在的线程队列是串行队列。 下面我对上述几个案例进行代码示例...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2015年10月22日 15:12
  • 4401

ios多线程操作(五)—— GCD串行队列与并发队列

GCD的队列可以分为2大类型,分别为串行队列和并发队列      串行队列(Serial Dispatch Queue):      一次只调度一个任务,队列中的任务一个接着一个地执行(一个任务执...
  • u011058732
  • u011058732
  • 2015年03月19日 21:53
  • 7292

iOS多线程——你要知道的GCD都在这里

你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里转载请注明出处 http://www.jianshu.com/p/e9d8a087f6c0本系列文章主要讲...
  • u014205968
  • u014205968
  • 2017年10月23日 20:51
  • 240

iOS多线程学习(1)——GCD

首先我们需要知道的是,什么是多线程? 线程可以理解为我们的处理器在处理我们需要执行的程序或者说代码的一个队列。而多线程就是指我们可以把我们需要处理的事情分开多个队列,让处理器分开去处理,让这些程序或者...
  • Yich_i
  • Yich_i
  • 2015年01月27日 17:56
  • 318

ios多线程操作(八)—— GCD调度组

有这么一个需要,分别执行2个耗时的异步操作,等2个异步操作都执行完毕后在回到主线程执行操作。如果想要快速高效地实现这个需求,可以考虑使用调度组。 调度组的创建代码如下: [objc...
  • WUWUWEIWEILONGLONG
  • WUWUWEIWEILONGLONG
  • 2016年04月16日 11:55
  • 697

iOS多线程开发—— GCD dispatch_semaphore 信号量

在GCD中提供了一种信号机制,也可以解决资源抢占问题(和同步锁的机制并不一样)。 GCD中信号量是dispatch_semaphore_t类型,支持信号通知和信号等待。每当发送一个信号通知,则信号量 ...
  • xiao__L
  • xiao__L
  • 2016年11月01日 10:37
  • 326

[第2章]多线程:GCD的简单使用(2)——调度组

调度组,dispatch group,异步,多线程,GCD,iOS,苹果
  • c13232906050
  • c13232906050
  • 2015年08月09日 22:23
  • 483
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多线程——GCD(并发)
举报原因:
原因补充:

(最多只允许输入30个字)