gcd:控制并行任务数

gcd: control number of parallel tasks

使用grand central dispatch,有没有办法控制运行并发的任务数?意思是,我想使用 dispatch_async,调用它,比如说,100 次,但最多只有,比如说,同时有 4 个任务 运行ning。如果四项任务中有两项要同时完成,则应立即开始另外两项。我看到有人建议在分派 4 个任务后使用屏障分派,但这需要完成所有 4 个任务,然后是屏障,然后是更多任务 - 这不是我想要的。

改用 NSOperationQueue,并将其 maxConcurrentOperationCount 参数设置为 4。

Read about Operation Queues in the Concurrency Programming Guide.