作者:fengsh998
原文地址:@L_502_0@http://blog.csdn.net/fengsh998/article/details/30354127
转载请注明出处
swift 并没有使用新一套线程,使用OC源有的一套线程。下面以例子来演示一下swift中使用线程。
其用包括常见的:NSThread,NSOperationQueue,GCG
- importUIKit
- classswiftThreadDemo:UIViewController
- {
- varqueue=NSOperationQueue()
- //init()
- //{
- ////alloc
- //super.init()
- //}
- deinit
- {
- //dealloc
- }
- functestGCDThread()
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),{
- //这里写需要大量时间的代码
- forvari=0;i<100000;i++
- println("GCDthreadrunning.")
- }
- sleep(5);
- dispatch_async(dispatch_get_main_queue(),{
- //这里返回主线程,写需要主线程执行的代码
- println("这里返回主线程,写需要主线程执行的代码")
- })
- })
- functestNSThread()
- //方式一
- //NSThread.detachNewThreadSelector("threadInMainMethod:",toTarget:self,withObject:nil)
- //方式二
- varmyThread=NSThread(target:self,selector:"threadInMainMethod:",object:nil)
- myThread.start()
- functhreadInMainMethod(sender:AnyObject)
- println("NSThreadrunning.")
- println("NSThreadover.")
- functestNSOperationQueue()
- //func(op:NSOperation!)
- varmopt=myOperationThread()
- queue.addOperation(mopt)
- classmyOperationThread:NSOperation
- overridefuncstart()
- super.start()
- overridefuncmain()
- forvari=0;i<100000;i++
- println("NSOperationrunning.")
- println("NSOperationover.")
- }
调用: