美文网首页Swift-技术探究
GCD-Swift 3 常见用法

GCD-Swift 3 常见用法

作者: 夜半敲门话不语 | 来源:发表于2016-11-18 14:55 被阅读22次

Swift 是完美支持GCD的,由于Swift的发展写法也一直在变动,下面列举一些常见的用法。

全局队列异步执行

print("before" + "\(Thread.current)")
// 全局队列异步执行
DispatchQueue.global().async {
    sleep(1)
    print("asyncTask" + "\(Thread.current)")
}
// 全局队列同步执行
DispatchQueue.global().sync {
    print("syncTask" + "\(Thread.current)")
}
print("after" + "\(Thread.current)")

// 执行结果
before<NSThread: 0x600000262d80>{number = 1, name = main}
syncTask<NSThread: 0x600000262d80>{number = 1, name = main}
after<NSThread: 0x600000262d80>{number = 1, name = main}
asyncTask<NSThread: 0x608000265b00>{number = 3, name = (null)}

可以看出同步执行时并没有重新开辟线程

GCD 常用模板

print("before" + "\(Thread.current)")

// 全局异步
DispatchQueue.global().async {
    print("task" + "\(Thread.current)")
    //主线程异步执行 刷新UI
    DispatchQueue.main.async {
        print("UI - task" + "\(Thread.current)")
    }
}
print("after" + "\(Thread.current)")

// 打印结果
before<NSThread: 0x60800007d780>{number = 1, name = main}
after<NSThread: 0x60800007d780>{number = 1, name = main}
task<NSThread: 0x608000268e40>{number = 3, name = (null)}
UI - task<NSThread: 0x60800007d780>{number = 1, name = main}

日常使用以上模板足够了。

相关文章

  • GCD-Swift 3 常见用法

    Swift 是完美支持GCD的,由于Swift的发展写法也一直在变动,下面列举一些常见的用法。 全局队列异步执行 ...

  • GCD-Swift 3 高级用法

    当今App中多线程是必不可少的因素,而GCD起着举足轻重的作用。下面我们来看看swift 3.0中的GCD,能给我...

  • 3、GCD-swift

    GCD 一直以来是基于 c 语言的。apple 为了使 GCD 使用更加的 swift 化。 对 GCD 进行了...

  • Python3 中逗号的特殊用法

    常见用法: 1. 作为参数或变量的分隔符 不常见用法: 2. 在print函数中的应用,使得输出不换行 3. 将变...

  • Asible常用模块

    主机连通测试 command模块 模块中常见的一些用法 用法实例: 3、shell 模块 shell模块可以在远程...

  • 02文本查看、操作、统计命令

    cat Concatenate 查看文本文件的内容,输出到屏幕 常见参数: 常见用法:图像2022-3-4 下午7...

  • Day13 1 统计函数(Subtotal)

    一、基本用法 1 在单元格输入=Subtotal( ,就会提示上述语法 3、9的用法常见 2 不是“一个函...

  • 常见用法

    1 To do 结构 ask sb. to do sth.请(叫)某人做某事 tell sb to do sth ...

  • Mac下统计代码行数的工具——cloc

    安装 统计当前Yaf项目代码 更多用法 常见用法

  • JAVA线程池常见用法及其原理

    JAVA线程池常见用法及其原理 JAVA线程池常见用法: 1.代码实现 import lombok.extern....

网友评论

    本文标题:GCD-Swift 3 常见用法

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