Основываясь на том, как я прочитал Apple's documentation, свойство concurrent
в NSOperation является только readonly и сообщает нам, будет ли операция выполняться асинхронно или нет. Если вы планируете вручную запускать операции, вам нужно вернуть свой NSOperation YES для asynchronous
, чтобы избежать блокировки потока, с которого вы начинаете свои операции. Свойство concurrent
используется только для контроля за состоянием работы, если вы работаете их вручную
Если вы добавляете ваши NSOperation
к NSOperationQueue
, очередь будет игнорировать значение asynchronous
собственности и выполнения операций в соответствии с maxConcurrentOperationCount
.
Таким образом, чтобы ответить на ваш вопрос: Если вы запускаете все операции вручную и установите asynchronous
в YES
, количество операций, работающих параллельно будет зависеть от того, насколько велика задержка между каждый раз, когда вы звоните start
на своих операциях, и сколько времени потребуется, чтобы закончить их. Если вы добавите их в очередь, ваша очередь будет запускать операции один за другим, как очередную очередь.