ios多线程开发 GCD的基本使用

/**

     *获取全局并发队列

     */

    dispatch_queue_t queue =  dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    // 1.添加到异步任务队列中执行,开启新线程

    dispatch_async(queue, ^{

        // something

    });

    // 2.添加到同步任务队列中执行,不会开启新线程,并发队列失去并发功能

    dispatch_sync(queue, ^{

        // something

    });

    

    

   /**

    *创建串行队列

    */

    dispatch_queue_t _queue = dispatch_queue_create("w", NULL);

    // 1.添加到异步任务队列中执行,会开启新线程,但是只开启一个线程

    dispatch_async(_queue, ^{

        

    });

    // 2.添加到同步任务队列中执行,不会开启新线程,同步执行

    dispatch_sync(_queue, ^{

        

    });

    

    

    /*

        总结

        同步任务队列

        1)并发队列:不会开线程

        2)串行队列:不会开线程

        异步任务队列

        1)并发队列:能开启N条线程

        2)串行队列:开启1条线程

     */

posted @ 2014-12-30 14:09  yangli(iOS)  阅读(158)  评论(0编辑  收藏  举报