美文网首页
gcd栅栏函数

gcd栅栏函数

作者: AntKing | 来源:发表于2017-04-28 16:27 被阅读0次

栅栏函数之前的和之后的会分开执行,dispatch_barrier_async(<#dispatch_queue_t _Nonnull queue#>, <#^(void)block#>)中的队列不能使用全局并发队列,只能自己去创建对垒,然后最为参数



#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    
    //0.获得全局并发队列
    //栅栏函数不能使用全局并发队列,只能自己创建队列
    //dispatch_queue_t queue =  dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_queue_t queue = dispatch_queue_create("download", DISPATCH_QUEUE_CONCURRENT);
    
    //1.异步函数
    dispatch_async(queue, ^{
       
        for (NSInteger i = 0; i<100; i++) {
            NSLog(@"download1-%zd-%@",i,[NSThread currentThread]);
        }
        
    });
    
    dispatch_async(queue, ^{
        
        for (NSInteger i = 0; i<100; i++) {
            NSLog(@"download2-%zd-%@",i,[NSThread currentThread]);
        }
    });
    
    dispatch_async(queue, ^{
        
        for (NSInteger i = 0; i<100; i++) {
            NSLog(@"download3-%zd-%@",i,[NSThread currentThread]);
        }
    });
    
    
    
    
    //栅栏函数,只有执行了栅栏函数之后,才会执行下面的线程
    dispatch_barrier_async(queue, ^{
       
        NSLog(@"+++++++++++++++++++++++++++++");
    });
    
    dispatch_async(queue, ^{
        
        for (NSInteger i = 0; i<100; i++) {
            NSLog(@"download4-%zd-%@",i,[NSThread currentThread]);
        }
    });
    
    
    dispatch_async(queue, ^{
        
        for (NSInteger i = 0; i<100; i++) {
            NSLog(@"download5-%zd-%@",i,[NSThread currentThread]);
        }
    });
    
    dispatch_async(queue, ^{
        
        for (NSInteger i = 0; i<100; i++) {
            NSLog(@"download6-%zd-%@",i,[NSThread currentThread]);
        }
    });
}

@end


相关文章

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

    GCD常用函数 GCD栅栏函数

  • GCD栅栏函数, 快速迭代和调度组的使用

    今天介绍几个比较重要的GCD函数: GCD栅栏函数: 同步栅栏函数: 会发生阻塞 异步栅栏函数: 不会发生阻塞 栅...

  • GCD栅栏函数

    // 栅栏函数在下面方法是不生效的. // dispatch_queue_t queen = dispatch_...

  • gcd栅栏函数

    栅栏函数之前的和之后的会分开执行,dispatch_barrier_async(<#dispatch_queue_...

  • GCD栅栏函数

    dispatch_barrier_async dispatch_barrier_sy...

  • gcd 栅栏函数

    1、当开发中,需要开启多个任务,同时需要控制前几个任务和后几个任务的顺序,该怎么办? 2、可以使用GCD的栅栏函数...

  • 多线程之GCD栅栏函数,GCD快速迭代,队列组

    1. GCD栅栏函数 作用:只有当栅栏函数执行完毕后才能执行后面的函数 需求:使用栅栏函数规定线程执行顺序 注意点...

  • 多线程二

    GCD 栅栏函数 dispatch_barrier_async 控制任务执行顺序,同步 保证线程安全 栅栏函数只能...

  • GCD的栅栏函数的原理及使用

    什么是栅栏函数 在GCD中的栅栏函数有dispatch_barrier_async(异步)和dispatch_ba...

  • 多线程网络02

    1 GCD栅栏函数 栅栏函数用户控制队列里异步函数的的执行顺序。注:栅栏函数不能使用全局并发队列,需要用自己创建的...

网友评论

      本文标题:gcd栅栏函数

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