zoukankan      html  css  js  c++  java
  • iOS开发----网络部分----GCD

    GCD中队列分类及获得方式

    1.串行队列  dispatch_queue_t queue = dispatch_queue_create("队列名", DISPATCH_QUEUE_SERIAL)

    2.并发队列  dispatch_queue_t queue = dispatch_queue_create("队列名",DISPATCH_QUEUE_CONCURRENT)

    3. 主队列    dispatch_queue_t queue = dispatch_get_main_queue();

    4.全局队列(并发队列)  dispatch_queue_t queue =  dispatch_get_global_queue(0, 0)

    任务的分类

    1. dispatch_async(queue, ^{})  同步任务

    2. dispatch_sync(queue, ^{})    异步任务

    在GCD中首先创建队列,然后在队列中添加任务

    1. 在串行队列中添加

    A. 同步任务  不会开辟新的线程,任务按步骤执行

    B. 异步任务  仅仅会开辟一条线程,任务会在新开劈的线程中执行

    2.在并发队列中添加任务

    A. 同步任务  不会开辟新的线程,任务按步骤执行

    B. 异步任务 会开辟多条线程且数量步可控,任务会在新开劈的线程中执行

    3.主队列(区别串行队列)  

    A. 同步任务  会阻塞任务的执行

    B. 异步任务  不会开辟新的线程,且耗时的任务(可能影响流畅性的任务)任务会在主线程空闲的时候执行

    4.全局队列(默认是并发队列)

    A. 同步任务  不会开辟新的线程,任务按步骤执行

    B. 异步任务 会开辟多条线程且数量步可控,任务会在新开劈的线程中执行

    问题: 通过dispatch_queue_t queue = dispatch_queue_create("队列名", DISPATCH_QUEUE_SERIAL)获得的队列是主队列

     <NSThread: 0x600000064b40>{number = 1, name = main}在是主队列吗? 是的话,添加的同步任务物为何不回阻塞

  • 相关阅读:
    TP5.1 分页CSS样式(转载)
    简单的layui二级联动
    关于layui部分表单不显示的问题(Select, checkBox)
    MySQL 开启远程访问权限 | 宝塔系统
    tp5.1 本地正常, 线上route.php不起作用的问题
    cocos自动图集
    微信小程序video
    nuxt https
    接口数据加密
    node里读取命令行参数
  • 原文地址:https://www.cnblogs.com/1018475062qq/p/6121554.html
Copyright © 2011-2022 走看看