zoukankan      html  css  js  c++  java
  • 初探swift语言的学习笔记五(线程)

    作者:fengsh998
    原文地址:http://blog.csdn.net/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()


  • 相关阅读:
    SDUT_1743 最优合并问题
    并查集路径压缩方法
    java定时器
    出路在哪里?出路在于思路!
    ztree学习
    sql
    java乱码问题详解值得收藏
    js 增加删除表格的行
    java DataBaseExecutor
    java增删改查
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4036975.html
Copyright © 2011-2022 走看看