扩展: 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. DB2表结构DDL脚本导出

    db2look是导出DDL语句脚本的命令,以下是对db2look的一个简单介绍. 语法:db2look -d <数据库名> -e -t <表名> -o <文件名>. ...

  2. 深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用

    深度神经网络(Deep Neural Networks, 简称DNN)是近年来机器学习领域中的研究热点,产生了广泛的应用.DNN具有深层结构.数千万参数需要学习,导致训练非常耗时.GPU有强大的计算能 ...

  3. Virtual Box + CentOS Minimal + Apache搭建Web服务器

    本文并不介绍关于Virtual Box, CentOS, Apache的安装, 主要针对安装后相关的配置, 使宿主机(Host)可以访问客户机(Guest: CentOS in Virtual Box ...

  4. hdu 4150 Powerful Incantation

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4150 Powerful Incantation Description Some dangerous ...

  5. Windows PowerShell ISE

    Windows PowerShell 集成脚本环境 (ISE) 是 Windows PowerShell 的主机应用程序.在 Windows PowerShell ISE 中,可以在单一 Window ...

  6. [超简洁]EasyQ框架-应对WEB高并发业务(秒杀、抽奖)等业务

    背景介绍 这几年一直在摸索一种框架,足够简单,又能应付很多高并发高性能的需求.研究过一些框架思想如DDD DCI,也实践过CQRS框架. 但是总觉得复杂度高,门槛也高,自己学都吃力,如果团队新人更难接 ...

  7. P1574: [Usaco2009 Jan]地震损坏Damage

    卧槽卧槽卧槽,这道水题竟然让我WA了两遍!!评测系统卡了然后手贱又提交了一次,然后就悲催了呜呜.. 把与不能回家但牛棚完好的牛相邻的牛棚赋值为不能走(false),可以证明,如果该牛回不了家,则周围一 ...

  8. Android -- 创建桌面快捷方式

    代码                                                                                    /** * * 返回添加到桌 ...

  9. 简单修改 MySQL 的 root 账号密码

    首先这是一篇非常非常初级的教程. 平时为了方便,经常是直接在网上下载 PHP + MySQL 的集成环境,但有一些 MySQL 的 root 账号是没有密码的(例如大名鼎鼎的 XAMPP 就是这样), ...

  10. Tomcat性能参数设置

    Tomcat性能参数设置 Tomcat性能参数设置 博客分类: Java LinuxTomcat网络应用多线程Socket 默认参数不适合生产环境使用,因此需要修改一些参数 1.修改启动时内存参数.并 ...