来源:http://blog.youkuaiyun.com/fengsh998/article/details/30354127
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.")
}
}