IOS之线程(GCD)

原创 2014年11月25日 16:06:55
//GCD(先进先出 FIFO)
    //串行:前一个任务完成,后一个任务才能执行
    //并行:任务在派发时是有序的,但是不用等第一个任务执行完成才开始
    //GCD队列分为三种:主队列,全局队列,自定义队列
    
    //1,使用主队列实现任务派发(串行),在主线程中
    /*
    dispatch_queue_t mainQueue = dispatch_get_main_queue();
    //1.1,添加任务
    dispatch_async(mainQueue, ^{
        NSLog(@"第一个任务:当前线程是:%@",[NSThread currentThread]);
    });
    dispatch_async(mainQueue, ^{
        NSLog(@"第二个任务:当前线城是:%@",[NSThread currentThread]);
    });
    dispatch_async(mainQueue, ^{
        NSLog(@"第三个任务:当前线程:%@",[NSThread currentThread]);
    });
    dispatch_async(mainQueue, ^{
        NSLog(@"第四个线程:当前线程:%@",[NSThread currentThread]);
    });
    */
    
    NSLog(@"当前任务:%@",[NSThread currentThread]);
    //2,自定义队列(串行)
    /*
    dispatch_queue_t myQueue = dispatch_queue_create("com.lanou.myqueue", DISPATCH_QUEUE_SERIAL);
    //2.1,添加任务
    dispatch_async(myQueue, ^{
        NSLog(@"第一个任务:当前任务:%@",[NSThread currentThread]);
    });
    dispatch_async(myQueue, ^{
        NSLog(@"第二个任务,当前任务:%@",[NSThread currentThread]);
    });
    dispatch_async(myQueue, ^{
        NSLog(@"第三个任务,当前任务:%@",[NSThread currentThread]);
    });
    */
    
    //3,自定义队列(并行)
    /*
    dispatch_queue_t myQueue1 = dispatch_queue_create("com.lanou", DISPATCH_QUEUE_CONCURRENT);
    dispatch_async(myQueue1, ^{
        NSLog(@"第一个任务:当前任务:%@",[NSThread currentThread]);
    });
    dispatch_async(myQueue1, ^{
        NSLog(@"第二个任务,当前任务:%@",[NSThread currentThread]);
    });
    dispatch_async(myQueue1, ^{
        NSLog(@"第三个任务,当前任务:%@",[NSThread currentThread]);
    });
    */
    //全局
    dispatch_queue_t globleQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    //3.1,添加任务
    dispatch_async(globleQueue, ^{
        NSLog(@"第一个任务,当前任务:%@",[NSThread currentThread]);
    });
    dispatch_async(globleQueue, ^{
        NSLog(@"第二个任务,当前任务:%@",[NSThread currentThread]);
    });
    

IOS 部分的GCD 异步线程方法简述

一、工作原理           让程序平行排队的特定任务,根据可用的处理资源,安排其在任何可用的处理器和欣赏执行任务。                      可以是block 或者是函数(fun...

iOS并发编程--GCD、操作队列、线程

现在iOS的多线程方案主要有以下这几种: 1. GCD(Grand Central Dispatch):使用dispatch queue(分派队列)执行tasks(任务),苹果公司推荐使用; 2....
  • G_eorge
  • G_eorge
  • 2017年11月30日 15:04
  • 46

[绍棠] iOS线程介绍 NSThread, NSOperation, GCD

简介 iOS有三种多线程编程的技术,分别是: (一)NSThread  (二)Cocoa NSOperation (三)GCD(全称:Grand Central Dispatc...

IOS 之 GCD线程 心得总结

一、什么是GCD? Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们...
  • zyyuann
  • zyyuann
  • 2015年12月22日 09:45
  • 141

ios - 多线程之八:GCD线程组

在我们的实际开发过程中会碰到这样的问题,只有当任务1和任务2都完成之后才能执行任务3,这种情况下就需要线程组的出现来解决这类问题。常用方法注意事项:使用线程组的方法来创建任务是没有同步任务的,创建按钮...

iOS-多线程编程学习之GCD——线程组、延时、计时器等(六)

上一篇文章我们介绍了GCD,以及其队列,同步异步等概念。这次我们将探讨更多GCD的功能,包括线程组(group),栅栏(barrier),单例(once),延时(after),并发迭代(apply)和...

iOS线程初探(四) GCD 和 NSOperation 小结

参考资料:关于iOS多线程,看我就够了GCD在GCD中,有两个概念很重要,那就是任务和队列。 任务 :其实就是你需要做的事情,一个Block而已。任务有两种执行方式:同步执行和异步执行。同步执行:会阻...
  • Koptop
  • Koptop
  • 2016年05月04日 17:22
  • 373

iOS线程-NSOperation,NSThread以及GCD

iOS开发中实现多线程有三种方式:NSThread,NSOperation和GCD。本文介绍三种方式的具体实现。 1.NSThread 初始化一个线程有两种方式: /*******NSOb...
  • wanawt
  • wanawt
  • 2014年01月03日 17:31
  • 1071

iOS开发系列线程 @synchronized锁 GCD NSThread

概览 大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算。可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行。但是机器码是按顺序执行的,一个复杂的多步...

iOS -- 线程 还有待补全--(关于线程死锁,解决办法等。。)(NSThread、NSOperation、GCD) -- ASI/AFNetWork

提到线程,就不得不说什么是进程。进程是:一个程序在一个数据集合上的一次运行。这句话也就是说,一个进程,是一个程序在CPU中运行的体现。线程是进程的具体实现,也就是说,一个进程在CPU中进行时间片轮转,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS之线程(GCD)
举报原因:
原因补充:

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