多线程编程

作者: de7e01056dd4 | 来源:发表于2017-08-14 13:36 被阅读4次

    线程是执行程序的最基本的单元,它有自己的栈和寄存器

    GCD

    Grand Central Dispatch是异步执行任务的技术之一

    Dispatch Queue: 是执行处理的等待队列
        DisPatch Queue按照追加的顺序(先进先出FIFO,First-In-First-Out)执行处理
    另外在执行处理时存在两种Dispatch Queue,
        等待现在执行中处理的Serial Dispatch Queue,
        不等待现在执行中处理的Concurrent Dispatch Queue
    
    • 四种队列
    1. 串行队列
      dispatch_queue_t q = dispatch_queue_create("xxx", DISPATCH_QUEUE_SERIAL);
    2. 并行队列
      dispatch_queue_t q = dispatch_queue_create("xxx", DISPATCH_QUEUE_CONCURRENT);
    3. 全局并行队列
      dispatch_get_global_queue(long identifier, unsigned long flags);
    4. 主队列
      dispatch_get_main_queue()
    • 两个函数
    1. 同步函数
      dispatch_sync(<#dispatch_queue_t _Nonnull queue#>, <#^(void)block#>)
    2. 异步函数
      dispatch_async(<#dispatch_queue_t _Nonnull queue#>, <#^(void)block#>)
      参考
    • 两种执行方式
    1. 同步执行
    2. 异步执行

    并发:多个任务同时发生,需要被处理
    并行: 同时处理多个任务的能力
    串行:任务必须按顺序来,一个一个执行,执行完当前任务才能执行下一个

    GCD方法

    dispatch_queue_get_label()获取队列的名字,如果队列没有名字,返回NULL
    

    GCD实现

    通常, 应用程序中编写的线程管理用的代码要在系统级实现,在系统级即iOS 和 OS X的核心XNU内核级上实现

    参考链接

    iOS多线程编程
    Swift 中的并发编程

    相关文章

      网友评论

        本文标题:多线程编程

        本文链接:https://www.haomeiwen.com/subject/pelurxtx.html