美文网首页
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
    
    
    

    相关文章

      网友评论

          本文标题:gcd栅栏函数

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