來源:http://blog.csdn.net/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.")
}
}