千家信息网

如何使用线程Thread与Operation

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容主要讲解"如何使用线程Thread与Operation",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用线程Thread与Operation"
千家信息网最后更新 2024年11月24日如何使用线程Thread与Operation

本篇内容主要讲解"如何使用线程Thread与Operation",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用线程Thread与Operation"吧!

Thread

//Thread 原始方式//Thread.detachNewThread 快捷方式创建Threadfor i in 0...10 {    Thread.detachNewThread{        print(i)    }}/* 0 7 3 4 5 2 1 6 8 9 10 */

Thread.detachNewThreadSelector

//Thread.detachNewThreadSelectorclass ObjectForThread {    func threadTest() {        let thread = Thread(target: self, selector: #selector(threadWorker), object: nil)        thread.start()        print("threadTest")    }        @objc func threadWorker() {        print("threadWorker")    }}let obj = ObjectForThread()obj.threadTest()/* threadTest threadWorker */

Cocoa Operation

//Cocoa Operation(Operation和OperationQueue)class ObjectOperation {    func test() {        let operation = BlockOperation{ [weak self] in            self?.threadWorker()        }        let queue = OperationQueue()        queue.addOperation(operation)    }        @objc func threadWorker() {        sleep(1)        print("threadWorker")    }}let objOperation = ObjectOperation()objOperation.test()print("after invoke test")//after invoke test//threadWorker

自定义Operation

//自定义Operationclass MyOperation: Operation {    override func main() {        sleep(1)        print("MyOperation main")    }}class CustomOperation {    func test() {        let operation = MyOperation()        operation.completionBlock = { () -> Void in            print("completionBlock")        }        let queue = OperationQueue()        queue.addOperation(operation)    }}let customOperation = CustomOperation()customOperation.test()print("after invoke customOperation test")//after invoke customOperation test//MyOperation main//completionBlock

到此,相信大家对"如何使用线程Thread与Operation"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0