zoukankan      html  css  js  c++  java
  • GCD-03

    1,队列和任务

    1)任务:需要执行什么操作

    *用block来封装任务

    2)队列:存放任务

    *全局的并发队列:可以让任务并发执行

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    *自己创建的串行队列:让任务一个接一个执行

    dispatch_queue_t queue = dispatch_queue_create("cn.heima.com", NULL);

    *主队列:让任务在住线程执行

    dispatch_queue_t queue = dispatch_get_main_queue();

    2,执行任务的函数

    1)同步执行:不具备开启新线程的能力

    dispatch_sync:

    2)异步执行:具备开启新线程的能力

    dispatch_async:

    3,常见的组合

    1)dispatch_async + 全局并发队列

    2)dispatch_async + 自己创建的串行队列

    4,线程间的通信

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

            // 执行耗时的并行操作。。。

            dispatch_async(dispatch_get_main_queue(), ^{

                // 回到主线程,执行UI刷新操作

            });

        });

    5,GCD的所有API都在libdispatch.dylib,Xcode会自动导入这个裤

    *主头文件:#import <dispatch/disaptch.h>

  • 相关阅读:
    字符串 高精度计算
    JAVA Socket编程 课堂作业
    图论 Floyd算法
    天梯赛题解 L1-049 天梯赛座位分配
    天梯赛题解 -L1-039 古风排版
    HDU 5558 后缀数组
    HDU 6194 后缀数组
    HDU 5769 后缀数组
    HDU 4691 后缀数组+RMQ
    HDU 4135 容斥原理
  • 原文地址:https://www.cnblogs.com/fkunlam/p/4341433.html
Copyright © 2011-2022 走看看