swift 多线程实现

本文介绍了Swift中多线程的实现,包括创建串行队列和并发队列,派发同步与异步任务,使用线程组以及在操作队列中进行任务调度。通过示例代码展示了如何在主线程和其他线程中执行操作,以及如何设置线程间的依赖关系,确保执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//队列 同步 异步 锁  延时 依赖
    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)
        
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值