首页 > 代码库 > [爱上Swift] day9:初探swift语言(线程)

[爱上Swift] day9:初探swift语言(线程)

作者:fengsh998
原文地址:http://blog.csdn.net/fengsh998/article/details/30354127
转载请注明出处
 

swift 并没有使用新一套线程,使用OC源有的一套线程。下面以例子来演示一下swift中使用线程。

其用包括常见的:NSThread,NSOperationQueue,GCG

 

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()  

  

 
 

[爱上Swift] day9:初探swift语言(线程)