美文网首页swift
Swift多线程编程

Swift多线程编程

作者: angelababa | 来源:发表于2015-07-17 09:56 被阅读287次

//MARK:后台执行

dispatch_async(dispatch_get_global_queue(0,0), { () ->Void in

})

//MARK:主线程执行

dispatch_async(dispatch_get_main_queue(), { () ->Void in

})

//MARK:一次性执行

var once =dispatch_once_t()

dispatch_once(&once) { () ->Void in

}

//MARK:延迟两秒执行

let delaySecends:UInt64 = 2

let popTime = dispatch_time(DISPATCH_TIME_NOW,Int64(delaySecends *NSEC_PER_SEC))

dispatch_after(popTime,dispatch_get_main_queue()) { () ->Void in

}

//MARK:自定义线程

let myqueue = dispatch_queue_create("abcdef",nil)

dispatch_async(myqueue, { () ->Void in

})

//MARK:并发执行

var queueGroup = dispatch_group_create()

dispatch_group_async(queueGroup,dispatch_get_global_queue(0,0)) { () ->Void in

//线程1

}

dispatch_group_async(queueGroup,dispatch_get_global_queue(0,0)) { () ->Void in

//线程2

}

dispatch_group_notify(queueGroup,dispatch_get_global_queue(0,0)) { () ->Void in

//汇总结果

}

Example1:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {

       //需要长时间处理的代码

       dispatch_async(dispatch_get_main_queue(), {

            //需要主线程执行的代码

       })

})

Example2:如果运行一系列的任务,希望当任务全部结束后运行另一个特殊的任务这种场景就是用下面的写法

let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)

let group = dispatch_group_create()

for(id obj in array)

dispatch_group_async(group, queue, {

self.doWork(obj)

})

dispatch_group_notify(group, queue, {

self.doneWork

})

相关文章

  • Swift 5.x 多线程

    Swift多线程编程方案: Thread Cocoa Operation (Operation 和 Operati...

  • OC-多线程

    多线程 官方文档:线程编程指南GCD源码:https://github.com/apple/swift-corel...

  • Swift多线程编程

    //MARK:后台执行 dispatch_async(dispatch_get_global_queue(0,0)...

  • fir.im Weekly - 揭秘 iOS 面向协议编程

    本期 fir.im Weekly 重点推荐关于 iOS 面向协议编程相关文章,还有 iOS 多线程安全、Swift...

  • 多线程编程

    多线程编程之Linux环境下的多线程(一)多线程编程之Linux环境下的多线程(二)多线程编程之Linux环境下的...

  • Swift多线程编程总结

    在开始多线程之前,我们先来了解几个比较容易混淆的概念。 概念 线程与进程 线程与进程之间的关系,拿公司举例,进程相...

  • Swift编程语言 FAQ

    Swift编程语言 FAQ Swift编程语言 FAQ

  • GCD in Swift 3

    本文假设你有一定的 GCD 和 Swift 基础。 iOS 下的多线程编程技术从底层往上分别是 NSThread、...

  • Swift の 函数式编程

    Swift の 函数式编程 Swift の 函数式编程

  • Swift - 多线程实现方式 - Grand Central

    1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术: (1)Thread (2)Coco...

网友评论

    本文标题:Swift多线程编程

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