Ваш вопрос довольно общий, и его трудно ответить без какого-либо минимального примера.
Если вы хотите синхронизировать выполнение различных потоков, я предлагаю вам прочитать около NSOperation
и NSOperationQueue
. NSOperationQueue
s справится с синхронизацией бесплатно.
Проще говоря, операция NSOperation
- это операция, выполняемая в фоновом режиме. Каждая операция выполняется в очереди (NSOperationQueue
).
В поле NSOperationQueue
вы можете указать количество одновременных операций, которые вы можете выполнять в фоновом режиме.
[yourQueue setMaxConcurrentOperationCount:1];
Например, приведенный выше код установить операции, которые могут быть выполнены в 1. Для общих ресурсов, это то же самое, чтобы синхронизировать доступ к этому ресурсу среди различных операций.
Кроме того, вы можете установить зависимости между операциями.
[operation2 addDependency:operation1];
код означает, что operation1
должен закончить до operation2
может работать.
Для получения дополнительной информации я предлагаю следующий учебник по nsoperation-and-nsoperationqueue. Конечно, вы также можете увидеть ссылки на классы в документе Apple.
Надеюсь, это поможет.
Действительно спасибо за разъяснение – Buron