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

作者:fengsh998
原文地址:http://blog.youkuaiyun.com/fengsh998/article/details/30354127
转载请注明出处
假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢!


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()


转载于:https://www.cnblogs.com/mengfanrong/p/4036975.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值