加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift 多线程实现

发布时间:2020-12-14 01:42:33 所属栏目:百科 来源:网络整理
导读://队列 同步 异步 锁 延时 依赖 func thread_queue(){ //创建串行队列 let serial_queue = dispatch_queue_create("label",DISPATCH_QUEUE_SERIAL) //创建并发队列 let con_queue = dispatch_queue_create("con",DISPATCH_QUEUE_CONCURRENT) //派送异步线程
//队列 同步 异步 锁  延时 依赖
    func thread_queue(){
        
        //创建串行队列
        let serial_queue = dispatch_queue_create("label",DISPATCH_QUEUE_SERIAL)
        
        //创建并发队列
        let con_queue = dispatch_queue_create("con",DISPATCH_QUEUE_CONCURRENT)
        
        //派送异步线程
        dispatch_async(serial_queue,{
            print("doing something 1")
        })
        
        //派发同步线程
        dispatch_sync(con_queue,{
            print("doing something")
        })
        
        //获得主线程队列
        let main_queue = dispatch_get_main_queue()
        
        //创建队列组
        let group = dispatch_group_create()
        
        //派发异步线程组
        dispatch_group_async(group,main_queue,{
            print("queue only have asynchronize method")
        })
        
    }
    
    func thread_oop (){
        
        // NSThread.detachNewThreadSelector("sel",toTarget: self,withObject: nil)
        // @convention()
        let mainThread = NSThread.mainThread()
        mainThread.performSelector("")
        mainThread.start()
        mainThread.cancel()
        mainThread.main()
        
        //abort()
        //exit(1)
        
        ///usage 1
        let operation = NSBlockOperation(block: {
            
        })
        
        ///usage 2
        operation.addExecutionBlock({
            
        })
        
        operation.start()
        
//        operation.addDependency(<#T##op: NSOperation##NSOperation#>)
        
        let operation1 = NSOperation()
        
        
        operation1.addDependency(operation)
        
        //主线程负责页面刷新,主线程如果阻塞,程序将卡死.
        let queue = NSOperationQueue.mainQueue()
        
        queue.addOperations([operation1,operation],waitUntilFinished: false)
        
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读