zoukankan      html  css  js  c++  java
  • GCD的简单封装

     扩展: dispatch_block_t :无参数block,使用起来很简单

     下载链接:http://pan.baidu.com/s/1bndN6Yb

       //串行队列
    - (void)test1 {
      
        WJGCDQueue *queue = [[WJGCDQueue alloc]initSerial];
        [queue execute:^{
            NSLog(@"1--%@",[NSThread currentThread]);
        }];
        [queue execute:^{
            NSLog(@"2--%@",[NSThread currentThread]);
        }];
        [queue execute:^{
            NSLog(@"3--%@",[NSThread currentThread]);
        }];
    }
        //并行队列
    - (void)test2 {
        
        WJGCDQueue *queue = [[WJGCDQueue alloc]initConcurrent];
        [queue execute:^{
            NSLog(@"1--%@",[NSThread currentThread]);
        }];
        [queue execute:^{
            NSLog(@"2--%@",[NSThread currentThread]);
        }];
        [queue execute:^{
            NSLog(@"3--%@",[NSThread currentThread]);
        }];
    }

       //复杂运算,更新ui
    - (void)test3 {
        
        [WJGCDQueue executeInGlobalQueue:^{
            NSLog(@"处理业务逻辑");
            [WJGCDQueue executeInMainQueue:^{
                NSLog(@"更新UI");
            }];
        }];
    }
        //延时操作
    - (void)test4 {
        NSLog(@"%@",[NSDate date]);
        [WJGCDQueue executeInMainQueue:^{
             NSLog(@"%@",[NSDate date]);
        } afterDelaySecs:2];
    }
        //定时器
    - (void)test5 {
        self.gcdTimer = [[WJGCDTimer alloc]initInQueue:[WJGCDQueue mainQueue]];
        [self.gcdTimer event:^{
            NSLog(@"GCD定时器");
        } timeInterval:NSEC_PER_SEC];
        [self.gcdTimer start];
    }
        //队列组
    - (void)test6 {
        WJGCDGroup *group = [[WJGCDGroup alloc]init];
        WJGCDQueue *queue = [[WJGCDQueue alloc]initConcurrent];
        [queue execute:^{
            NSLog(@"线程1");
        } inGroup:group];
        [queue notify:^{
            NSLog(@"线程执行");
        } inGroup:group];
    }

        //信号量
    - (void)test7 {
        WJGCDSemaphore *semaphore = [[WJGCDSemaphore alloc]init];
        [semaphore signal];
        [semaphore wait];
    }
  • 相关阅读:
    python3画聚类树图
    RedHat 7.0 系统 安装
    在VMware vSphere Client安装新的服务器(虚拟机)
    RedHat 7.0 VMware Tools 安装
    RedHat 7.0 Firefox浏览器 安装与更新
    Redhat 7.0 Opera浏览器 安装
    windows 8.1 IE11 和 windows 10 Edge & IE11 FlashPlayer 的安装与卸载
    在Windows和Mac上输入unicode字符
    已知IP 查看hostname
    RedHat 7.0 Chrome浏览器 安装
  • 原文地址:https://www.cnblogs.com/hxwj/p/4669163.html
Copyright © 2011-2022 走看看