美文网首页
【Swift】线程、队列

【Swift】线程、队列

作者: piggybear | 来源:发表于2018-03-15 21:56 被阅读51次

任务:是在线程中执行的,分为同步和异步

队列:先进先出(FIFO(First Input First Output)),分为串行、并行、全局和主队列。队列只是负责任务的调度,而不负责任务的执行

1、串行(serial)
let queue = DispatchQueue(label: "label")

同步(不会开启新线程)

queue.sync {
    print("serial sync thread", Thread.current)
}

异步(会开启新线程)

queue.async {
    print("serial async thread", Thread.current)
}

2、并行(concurrent)
let queue = DispatchQueue(label: "label", attributes: .concurrent)

同步(不会开启新线程)

queue.sync {
    print("concurrent sync thread", Thread.current)
}

异步(会开启新线程)

queue.async {
    print("concurrent async thread", Thread.current)
}

3、全局(global)
let queue = DispatchQueue.global()

同步(不会开启新线程)

queue.sync {
    print("global sync thread", Thread.current)
}

异步(会开启新线程)

queue.async {
    print("global async thread", Thread.current)
}

4、主队列(main)
let queue = DispatchQueue.main

同步(死锁)

queue.sync {
    print("main sync thread", Thread.current)
}

异步(不会开启新线程,还是在主线程)

queue.async {
    print("main async thread", Thread.current)
}

相关文章

  • 【Swift】线程、队列

    任务:是在线程中执行的,分为同步和异步 队列:先进先出(FIFO(First Input First Output...

  • GCD 个人理解

    看GCD精讲(Swift 3&4)做的笔记 gcd 让开发人员由面向线程编程编为面向队列编程。 队列: 同步队列、...

  • Swift基础--线程队列

    参考:青玉伏案博客--GCD详解 线程 队列

  • OC多线程

    队列创建 线程与队列 队列线程间通信 队列组

  • Swift队列和线程的搭配执行

    队列分为 串行队列,并行队列,特殊的主队列线程分为 同步线程,异步线程 搭配结果一共6种情况1:主队列,同步线程。...

  • iOS - 线程、队列

    线程: 1.异步线程全局队列 2.主线程 队列 1.串行队列

  • Swift- 多线程编程GCD

    参考文章:1、Swift 3使用GCD和DispatchQueues2、线程死锁 基本概念: 串行队列:只有一个线...

  • Thread

    队列 线程锁 多线程,线程池 队列 多线程爬虫示例 多线程 自定义线程 线程池

  • GCD线程之间的关系

    所有队列默认都是在主线程执行的 主队列同步任务线程死锁主队列异步任务不产生新线程主队列是一种特殊的串行队列:该队列...

  • 2019-06-17多线程爬虫

    分析:两类线程:下载(3),解析(3)内容队列:下载线程往队列中put数据,解析线程从队列get数据url队列:下...

网友评论

      本文标题:【Swift】线程、队列

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