zoukankan      html  css  js  c++  java
  • dispatch_queue

    dispatch_group_notify方法调用执行时,如果没有添加到group的任务在执行,那么直接执行notify的Block,如果有则等待现有的任务执行完之后执行notify的Block

    - (void)test_1 {
        dispatch_group_t group = dispatch_group_create();
        dispatch_queue_t queue = dispatch_queue_create("test_for_group_events", DISPATCH_QUEUE_CONCURRENT);
        dispatch_group_notify(group, dispatch_get_main_queue(), ^{
            NSLog(@"=========> finsh running 00");
        });
        dispatch_group_notify(group, dispatch_get_main_queue(), ^{
            NSLog(@"=========> finsh running 01");
        });
        dispatch_group_async(group, queue, ^{
            [NSThread sleepForTimeInterval:1.0];
            NSLog(@"============> 1");
        });
        dispatch_group_enter(group);
        dispatch_async(queue, ^{
            [NSThread sleepForTimeInterval:0.6];
            NSLog(@"============> 2");
            dispatch_group_leave(group);
        });
        dispatch_group_notify(group, queue, ^{
            NSLog(@"=========> finsh running 02");
        });
        dispatch_group_enter(group);
        dispatch_async(dispatch_get_main_queue(), ^{
            [NSThread sleepForTimeInterval:0.3];
            NSLog(@"============> 3");
            dispatch_group_leave(group);
        });
        dispatch_group_notify(group, dispatch_get_main_queue(), ^{
            NSLog(@"=========> finsh running 03");
        });
        dispatch_group_notify(group, dispatch_get_main_queue(), ^{
            NSLog(@"=========> finsh running 04");
        });
    }

    给dispatch_queue增加属性

    dispatch_queue_set_specific(_queue, kDispatchQueueSpecificKey, (__bridge void *)self, NULL);

    dispatch_sync(dispatch_get_global_queue(0, 0), ^{
            NSLog(@"是否在主线程执行:%d",[NSThread isMainThread]);
            NSLog(@"%@",[NSOperationQueue currentQueue]);
        });

    在主线程调用同步,输出为是主线程、为主队列

  • 相关阅读:
    程序员之歌 littleflute原创
    生成网站缩略图的小工具,:)
    十个习惯
    用反编译工具透析.Net页面生成本质
    装箱拆箱陷阱揭秘
    图片上传——用一般处理程序实现
    Web.config文件中常用的配置节点
    初识三层,请多指教
    匪夷所思的题目,心理慢慢引导
    权重分配方法
  • 原文地址:https://www.cnblogs.com/yuxiaoyiyou/p/12895721.html
Copyright © 2011-2022 走看看