Swift 面试题
目录

Swift 中 Operation 和 OperationQueue 的用法?

· 约 4 分钟读完 · 第 145 / 196 章

推荐答案

本题详细解读

Operation 和 OperationQueue 的基本概念

  • Operation: Operation 是一个抽象类,用于表示一个任务或操作。你可以通过继承 Operation 类来创建自定义的操作,或者使用系统提供的 BlockOperation 来执行一个闭包任务。

  • OperationQueue: OperationQueue 是一个队列,用于管理和执行 Operation 对象。它可以控制操作的并发执行数量,并且可以管理操作之间的依赖关系。

自定义 Operation

在 Swift 中,你可以通过继承 Operation 类来创建自定义的操作。通常需要重写 main() 方法,该方法会在操作执行时被调用。你可以在 main() 方法中执行具体的任务逻辑。

创建和使用 OperationQueue

OperationQueue 用于管理 Operation 的执行。你可以通过设置 maxConcurrentOperationCount 来控制同时执行的操作数量。默认情况下,OperationQueue 会根据系统资源自动调整并发数。

添加依赖

你可以通过 addDependency(_:) 方法为操作添加依赖关系。这样,一个操作只有在它所依赖的所有操作都完成后才会开始执行。

将操作添加到队列

使用 addOperation(_:) 方法将操作添加到队列中。队列会自动开始执行这些操作。

等待操作完成

你可以使用 waitUntilAllOperationsAreFinished() 方法来阻塞当前线程,直到队列中的所有操作都完成。

总结

通过 Operation 和 OperationQueue,你可以轻松地管理并发任务的执行顺序和依赖关系。OperationQueue 提供了强大的功能,使得多线程编程变得更加简单和可控。