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


  • 相关阅读:
    day 24
    day23
    day 22
    java中空格的操作
    java 解析Word文档以及Excel表格数据带有图片(2003/2007)
    java中创建文件夹
    http请求问题
    js弹框显示全部内容
    java实现HTTP请求的三种方式
    solr与java整合使用
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4036975.html
Copyright © 2011-2022 走看看