美文网首页Swift学习笔记
Swift - 多线程开发

Swift - 多线程开发

作者: aven_kang | 来源:发表于2022-05-10 21:30 被阅读0次
    class Asyncs {
        
        public typealias Task = () -> Void
    
        private static func _async(_ task: @escaping Task,
                                   _ mainTask: Task? = nil) {
            
            let item = DispatchWorkItem(block: task)
            DispatchQueue.global().async(execute: item)
            if let main = mainTask {
                item.notify(queue: DispatchQueue.main, execute: main)
            }
            
        }
    
        public static func async(_ task: @escaping Task){
    
            _async(task)
            
        }
        
        public static func async(_ task:@escaping Task,
                                 _ mainTask:@escaping Task) {
            
            _async(task, mainTask)
            
        }
        
        
    }
    
           Asyncs.async {
                print(Thread.current)
               // 子线程 <NSThread: 0x600003af5dc0>{number = 4, name = (null)}
            }
            Asyncs.async {
                print(Thread.current)
               // 子线程 <NSThread: 0x600003af37c0>{number = 6, name = (null)}
            } _: {
                print(Thread.current) 
                // 主线程 <_NSMainThread: 0x600003ab4940>{number = 1, name = main}
            }
    

    打印

    <NSThread: 0x600003af5dc0>{number = 4, name = (null)}
    <NSThread: 0x600003af37c0>{number = 6, name = (null)}
    <_NSMainThread: 0x600003ab4940>{number = 1, name = main}
    

    相关文章

      网友评论

        本文标题:Swift - 多线程开发

        本文链接:https://www.haomeiwen.com/subject/kgyarrtx.html