扩展: 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:];
}
    //定时器
- (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];
}

GCD的简单封装的更多相关文章

  1. Android AsyncTask 深度理解、简单封装、任务队列分析、自定义线程池

    前言:由于最近在做SDK的功能,需要设计线程池.看了很多资料不知道从何开始着手,突然发现了AsyncTask有对线程池的封装,so,就拿它开刀,本文将从AsyncTask的基本用法,到简单的封装,再到 ...

  2. FMDB简单封装和使用

    工具:火狐浏览器+SQLite Manager插件 ; Xcode; FMDB库; 效果: 项目地址: https://github.com/sven713/PackFMDB 主要参考这两篇博客: 1 ...

  3. Android--Retrofit+RxJava的简单封装(三)

    1,继续接着上一篇的讲讲,话说如果像上一篇这样的话,那么我们每一次请求一个结构都要创建一堆的Retrofit对象,而且代码都是相同的,我们可以试试封装一下 先创建一个HttpMethods类,将Ret ...

  4. okhttp3 get post 简单封装

    最近打算在新项目中使用 okhttp3, 简单封装了一下异步 get post 因为 CallBack 也是在子线程中执行,所以用到了 Handler public class MyOkHttpCli ...

  5. python网页请求urllib2模块简单封装代码

    这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码. 原文转自:http://www.jbxue.com/article/16585.html 对python网页请求模块ur ...

  6. 对pymysql的简单封装

    #coding=utf-8 #!/usr/bin/python import pymysql class MYSQL: """ 对pymysql的简单封装 "& ...

  7. iOS开发——UI篇OC篇&UITableView简单封装

    UITableView简单封装 UITableView时iOS开发中使用最多也是最重的一个UI空间,其实在App Store里面的%80以上的应用都用到了这个控件,所以就给大家介绍一下,前面的文章中也 ...

  8. iOS sqlite 增删改查 简单封装(基于 FMDB)

    /** *  对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查 * *  基于 FMDB * *  操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整 ...

  9. ADO简单封装(MFC)

    简单封装了一下,不是很严谨. /************************************************************************/ /* INSTRUC ...

随机推荐

  1. GNU make 规则

    clean : rm *.tmp 规则格式: targets : prerequisites recipe ... targets : prerequisites : recipe recipe .. ...

  2. SpringMVC综合使用手机管理系统Controller层开发

    1. beans.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...

  3. Mybatis关于like的字符串模糊处理

    其中通过"%"#{key}"%"来拼接语句 <sql id="select_where"> from cellphone c l ...

  4. Spring原来属于这家公司

    Spring几年前被VMware公司收购,如今Spring版权隶属于Pivotal.Pivotal ONE对Spring提供整合.Greenplum提供了大数据服务,GEMFIRE内存集群技术帮助12 ...

  5. ExtJS 提示

    要使ExtJS支持提示,需要在onReady的function中添加如下语句: Ext.QuickTips.init();//支持tips提示 Ext.form.Field.prototype.msg ...

  6. [转]ubuntu(12.04)下, 命令 ,内核 源代码的获取

    [转]ubuntu(12.04)下, 命令 ,内核 源代码的获取 http://blog.chinaunix.net/uid-18905703-id-3446099.html 1.命令:例如:要查看l ...

  7. 27.some company's Spi Flash chip replace altera epcsxxx

    由于altera公司的epcsxxx芯片比较贵,所以一般用其它公司的spi flash芯片代替也可以.据AlteraFAE描述:“EPCS器件也是选用某家公司的SPIFlash,只是中间经过Alter ...

  8. [网络配置相关]——netstat命令

    netstat:显示网络状态信息 -a   显示所有连接状态的网络的所有选项-l    仅显示LISTEN状态的连接-n   直接显示IP地址,而不通过域名服务器-p   把进程名和进程PID也显示出 ...

  9. 立即执行函数(IIFE)的理解与运用

    作为JavaScript的常用语法,立即执行函数IIFE(Immediately-Invoked Function Expression)是值得我们认真去学习探究的. 一.创建函数的两种方式 我们先从 ...

  10. Java内部实现的观察者模式小记

    假如Admin要观察User的工资变化,当User的工资增加或者减少时,都会引起Admin输出相应的信息. 定义观察者接口:MyObserver.java package cn.liuning.wat ...