import UIKit class swiftThreadDemo : UIVIEwController { var queue = NSOperationQueue() // init() // { // //alloc // super.init() // } deinit { //dealloc } func testGCDThread() { dispatch_async(dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAulT,0),{ //这里写需要大量时间的代码 for var i = 0; i < 100000; i++ { println("GCD thread running.") } sleep(5); dispatch_async(dispatch_get_main_queue(),{ //这里返回主线程,写需要主线程执行的代码 println("这里返回主线程,写需要主线程执行的代码") }) }) } func testNSThread() { //方式一 //NSThread.detachNewThreadSelector("threadInMainMethod:",toTarget:self,withObject:nil) //方式二 var myThread = NSThread(target:self,selector:"threadInMainMethod:",object:nil) myThread.start() } func threadInMainMethod(sender : AnyObject) { for var i = 0; i < 100000; i++ { println("NSThread running.") } sleep(5); println("NSThread over.") } func testNSOperationQueue() { //func (op: NSOperation!) var mopt = myOperationThread() queue.addOperation(mopt) } } class myOperationThread : NSOperation { overrIDe func start() { super.start() } overrIDe func main() { for var i = 0; i < 100000; i++ { println("NSOperation running.") } println("NSOperation over.") } }调用:
var st = swiftThreadDemo() st.testNSThread() sleep(2) st.testGCDThread() st.testNSOperationQueue()这就常用开启线程的3种方式 总结
以上是内存溢出为你收集整理的swift开启线程的3种方式(其实很简单的)全部内容,希望文章能够帮你解决swift开启线程的3种方式(其实很简单的)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)