只允许某些操作并发
Allow only certain operations to be concurrent
我想知道是否可以在 NSOperationQueue
中仅与某些其他操作同时进行操作。例如:
- 操作 A - 与所有非并发
- 操作 B - 可以与 C 并发(但不是它本身)
- 操作 C - 可以与 B 并发(但不是它本身)
可以组成如下队列:
B B
A - | - B - B - | - A
C C
NSOperationQueue
是否可以实现这种特定的并发条件?
NSOperation
的 concurrent
属性 具有误导性,因为它指定操作异步执行其任务(实际上自 10.6 以来现在已被忽略)。
这似乎是使用依赖项的好情况。使用 maxConcurrentOperations = 2
可以在添加另一个之前检查队列中的最后一个操作。
If A,如果新操作是A,B[=,则使新操作依赖于它29=] 或 C.
If B,如果新操作是 B 或 A[=,则使新操作依赖于它29=].
If C,如果新操作是 C 或 A[=,则使新操作依赖于它29=].
我想知道是否可以在 NSOperationQueue
中仅与某些其他操作同时进行操作。例如:
- 操作 A - 与所有非并发
- 操作 B - 可以与 C 并发(但不是它本身)
- 操作 C - 可以与 B 并发(但不是它本身)
可以组成如下队列:
B B
A - | - B - B - | - A
C C
NSOperationQueue
是否可以实现这种特定的并发条件?
NSOperation
的 concurrent
属性 具有误导性,因为它指定操作异步执行其任务(实际上自 10.6 以来现在已被忽略)。
这似乎是使用依赖项的好情况。使用 maxConcurrentOperations = 2
可以在添加另一个之前检查队列中的最后一个操作。
If A,如果新操作是A,B[=,则使新操作依赖于它29=] 或 C.
If B,如果新操作是 B 或 A[=,则使新操作依赖于它29=].
If C,如果新操作是 C 或 A[=,则使新操作依赖于它29=].