码迷,mamicode.com
首页 > 编程语言 > 详细

初探swift语言的学习笔记五(线程)

时间:2014-06-15 18:00:52      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:swift   线程   ios   iphone   gcd   

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语言的学习笔记五(线程),布布扣,bubuko.com

初探swift语言的学习笔记五(线程)

标签:swift   线程   ios   iphone   gcd   

原文地址:http://blog.csdn.net/fengsh998/article/details/30354127

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!