初探swift語言的學習筆記五(線程)

做者:fengsh998
原文地址:http://blog.csdn.net/fengsh998/article/details/30354127
轉載請註明出處
假設認爲文章對你有所幫助,請經過留言或關注微信公衆賬號fengsh998來支持我,謝謝!


swift 並無使用新一套線程,使用OC源有的一套線程。如下以樣例來演示一下swift中使用線程。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()
相關文章
相關標籤/搜索