利用GCD实现延迟(实现延迟的几种方法)

原创 2015年07月08日 07:19:07


    // 在主线程中延迟执行某动作,不会卡主主线程,不影响后面的东做执行

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        NSLog(@"%@", [NSThread currentThread]);

    });


    // 在子线程中执行某动作,不会卡主整个线程

    dispatch_queue_t queue  = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);


    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), queue, ^{


        NSLog(@"%@", [NSThread currentThread]);

    });



    // 实现延迟,该线程本身在哪个线程中就再哪个线程中执行

    NSURL *url = [NSURL URLWithString:@"http://59320.jpg.com"];

    [self performSelector:@selector(download:) withObject:url afterDelay:3];



    // 利用sleep实现延迟(不要用这个,会卡住主线程,即后面的动作不会执行)

    [NSThread sleepForTimeInterval:3];


关于GCD 延时操作 简单理解 (dispatch_asycn,dispatch_sycn)

同步(sync) 和 异步(async) 的主要区别在于会不会阻塞当前线程,直到 Block 中的任务执行完毕! 如果是 同步(sync) 操作,它会阻塞当前线程并等待 Block 中的任...

GCD延时执行

GCD延时执行

GCD实践——GCD延时执行

这里我将为大家用两种方式来实现延时操作,分别是NSThread和GCD方式。并比较他们的优劣。我把代码放到了Github上面     ,中的GCD02. 【使用NSThread实现延迟】 (1)拖入...

iOS中常用的几种延时加载/执行的处理办法

今天 就说说iOS开发中常用的几种延时操作的方法: : : : : 1.performSelector........

GCD下的几种实现同步的方式

GCD多线程下,实现线程同步的方式有如下几种: 1.串行队列 2.并行队列 3.分组 4.信号量 实例: 去网上获取一张图片并展示在视图上. 实现这个需求,可以拆分成两个任务,一个是去网上...

【iOS沉思录】GCD实现线程同步的方法

在iOS多线程中我们知道NSOperationQueue操作队列可以直接使用addDependency函数设置操作之间的依赖关系实现线程同步,还可以使用setMaxConcurrentOperatio...
  • cordova
  • cordova
  • 2017年06月02日 22:31
  • 837

经典算法(5)- 用二进制方法实现扩展的最大公约数(Extended GCD)

二进制方法中,只需要移位(>)和加减操作(+和-),不像欧几里德算法中需要乘法和除法运算。虽然算法效率更高,但是程序的可读性和可维护性差一些。如果设d=gcd(u,v) = u.x + v.y, 本算...

端口映射的几种实现方法

  • 2006年02月23日 15:31
  • 107KB
  • 下载

利用javascript实现页面跳转的几种方法

利用javascript实现页面跳转的几种方法   按钮式:    直接跳转式:   window.location.href='url'; window....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用GCD实现延迟(实现延迟的几种方法)
举报原因:
原因补充:

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