Swift 面试题
目录

Swift 中如何创建串行队列 (Serial Queue) 和并行队列 (Concurrent Queue)?

· 约 2 分钟读完 · 第 143 / 196 章

推荐答案

在 Swift 中,可以使用 DispatchQueue 来创建串行队列和并行队列。具体代码如下:

本题详细解读

串行队列 (Serial Queue)

串行队列是指任务按照顺序依次执行,前一个任务完成后,后一个任务才会开始。在 Swift 中,可以通过 DispatchQueue 的初始化方法来创建一个串行队列。label 参数用于标识队列,通常使用反向域名格式(如 com.example.serialQueue)来确保唯一性。

并行队列 (Concurrent Queue)

并行队列是指多个任务可以同时执行,任务的执行顺序不一定与加入队列的顺序一致。在 Swift 中,可以通过在 DispatchQueue 初始化时指定 attributes 参数为 .concurrent 来创建一个并行队列。

使用场景

  • 串行队列:适用于需要按顺序执行任务的场景,如数据同步、依赖任务等。
  • 并行队列:适用于可以并行执行的任务,如图片下载、数据处理等。

注意事项

  • 串行队列虽然保证了任务的顺序执行,但也可能导致性能瓶颈,特别是在任务耗时较长的情况下。
  • 并行队列虽然可以提高任务的执行效率,但也需要注意线程安全问题,避免资源竞争和数据不一致的情况。