GCD常用的函数

作者: qilinit | 来源:发表于2016-09-18 22:22 被阅读123次

1、延迟函数

//延迟执行

//[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(task) userInfo:nil repeats:YES];

//[self performSelector:@selector(task) withObject:nil afterDelay:3.0];

dispatch_queue_t queue = dispatch_get_global_queue(0, 0);

//GCD延迟执行

/*

第一个参数:表示从什么时候开始计时 DISPATCH_TIME_NOW:现在

第二个参数:间隔的时间

第三个参数:队列,决定block在哪个线程中调用,只有当队列是主队列的时候才在主线程调用

第四个参数:

*/

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

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

});

2、栅栏函数

//1.创建并发队列

dispatch_queue_t queue = dispatch_queue_create("www.yifuj.com", DISPATCH_QUEUE_CONCURRENT);

//2.使用异步函数添加任务

dispatch_async(queue, ^{

for (NSInteger i = 0; i<10; i++) {

NSLog(@"download 1--%zd-%@",i,[NSThread currentThread]);

}

});

dispatch_async(queue, ^{

for (NSInteger i = 0; i<10; i++) {

NSLog(@"download 2--%zd-%@",i,[NSThread currentThread]);

}

});

dispatch_async(queue, ^{

for (NSInteger i = 0; i<10; i++) {

NSLog(@"download 3--%zd-%@",i,[NSThread currentThread]);

}

});

//栅栏函数:控制队列中任务的执行顺序,前面的所有任务执行完毕之后执行栅栏函数,自己执行完毕之后再之后后面的任务

dispatch_barrier_async(queue, ^{

NSLog(@"++++++++++++++++++++++++++");

});

dispatch_async(queue, ^{

for (NSInteger i = 0; i<10; i++) {

NSLog(@"download 4--%zd-%@",i,[NSThread currentThread]);

}

});

dispatch_async(queue, ^{

for (NSInteger i = 0; i<10; i++) {

NSLog(@"download 5--%zd-%@",i,[NSThread currentThread]);

}

});

相关文章

  • iOS-GCD常用函数和栅栏函数

    GCD常用函数 GCD栅栏函数

  • GCD学习(三)

    GCD学习一 GCD学习二 GCD学习三 常用函数: dispatch_set_target_queue disp...

  • GCD的基本使用(二)

    一.线程间通信 二.GCD常用函数 还需补充.

  • GCD常用函数

    栅栏函数 1.栅栏函数可以用来控制任务的执行顺序 dispatch_barrier_async(dispatch_...

  • GCD常用函数

    延迟执行 一次性代码 栅栏函数 快速迭代 队列组 定时器

  • GCD常用函数

    1 一次性代码 :1)在整个程序运行过程中只会执行一次 2)线程安全 2 延迟函数的使用:延长多时间去执行任务 3...

  • GCD常用函数

    栅栏函数 延迟函数 一次代码 快速迭代

  • GCD常用的函数

    1、延迟函数 //延迟执行 //[NSTimer scheduledTimerWithTimeInterval:2...

  • 底层20:多线程-同步/异步/并发/串行

    GCD两种常用的函数: GCD中有2个用来执行任务的函数 用同步的方式执行任务:dispatch_sync(dis...

  • GCD之semaphore函数

    GCD中, 有一些函数很常用, 比如同步函数, 异步函数, 障碍函数, 一次性函数等; 另外一些不太常用, 如迭代...

网友评论

    本文标题:GCD常用的函数

    本文链接:https://www.haomeiwen.com/subject/gepgettx.html