多线程——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的队列可以分为2大类型,分别为串行队列和并发队列      串行队列(Serial Dispatch Queue):      一次只调度一个任务,队列中的任务一个接着一个地执行(一个任务执...

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

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

iOS之多线程——概念、pthread、NSThread、GCD

1.基本概念 1.1 进程进程是指在系统中正在运行的一个应用程序。每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。 1.2 线程 (1)基本概念1个进程要想执行任务,必须得有线程(每...

iOS一种多线程的管理方式——GCD

GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制。它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。      GCD中的FI...

iOS - 多线程——GCD

什么是GCD           Grand Central Dispatch(强大的调度器),是一个C语言API;           作用:多核并行运算的...

iOS多线程总结(2)——GCD的使用

本篇是多线程总结的第二篇,关于多线程的概念和NSThread的使用写在第一篇,查看请点击 《iOS多线程总结(1)——多线程相关概念及NSObject/NSThread的使用 》,本编主要降解GCD的...

ios多线程操作(七)—— GCD延迟操作与一次性代码

使用GCD函数可以进行延时操作,该函数为 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSE...

GCD实践——多线程图片下载与信号量开发实践

在实际的项目开发中,我们往往需要从网络加载图片资源,为了不影响主线程,我们需要开辟新的线程。同时为了控制不同线程之间的前后顺序,需要引入信号量机制。这里我们来实现一个案例:从网络加载3张图片,当加载完...

ios多线程操作(六)—— GCD全局队列与主队列

GCD默认已经提供了全局的并发队列供整个应用使用,所以可以不用手动创建。       创建全局队列的函数为 dispatch_queue_t q = dispatch_get_global_queue...

多线程——GCD

无论队列中所指定的执行的函数是同步还是异步,都会等待前一个任务执行完成后,再调度后面的任务要不要开线程由执行任务决定  dispatch_sync 不开dispatch_async 开 开几条...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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