gcd深入学习

来源:互联网 发布:腾讯云域名怎么添加 编辑:程序博客网 时间:2024/05/22 06:38


   参考文章:

GCD 深入理解(一)

http://www.cocoachina.com/industry/20140428/8248.html

GCD 深入理解(二)

http://www.cocoachina.com/industry/20140515/8433.html

部分示例代码

 //队列的创建

    

    //系统主队列(串行)

    dispatch_queue_t sys_main_queus =dispatch_get_main_queue();

    //自定义串行队列

    dispatch_queue_t my_serial_queus1 =dispatch_queue_create("com.etong.xt",0);

    dispatch_queue_t my_serial_queus2 =dispatch_queue_create("com.etong.xt.seria",NULL);

    

    //系统全局并行队列 low high default background (4)

    dispatch_queue_t sys_global_queus =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);

    

    //自定义并行对列

    dispatch_queue_t my_concurrent_queus =dispatch_queue_create("com.etong.xt",DISPATCH_QUEUE_CONCURRENT);

//    const char *string = @"text string";

    

    //自己创建的队列要负责内存管理

    //任务执行

    

    //同步执行任务

    dispatch_sync(sys_main_queus, ^{

        

    });

 

 /**

      * 同步执行任务使用注意

      *  1、串行队列小心使用,容易出现死锁

      *  2、一般用在并发队列中

      */

    

    //异步执行任务

    dispatch_async(sys_main_queus, ^{

        

    });

    

    //延迟执行任务

    dispatch_time_t delayTime =dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0*NSEC_PER_SEC));

    dispatch_after(delayTime, sys_main_queus, ^{

        

    });

    

    //单例

    dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        

    });

0 0
原创粉丝点击