Очереди диспетчерского барьера в GCD (iOS)

Я создаю несколько параллельных очередей в своем приложении. dispatch_barrier_sync используется для изменения общего ресурса.

Будет ли dispatch_barrier_sync выполнять параллельное выполнение только в текущей очереди или во всех очередях?

Например, скажем, у меня есть 3 пользовательские параллельные очереди «A», «B» и «C». Если я dispatch_barrier_sync блок dispatch_barrier_sync в очередь «A», будет ли он блокировать параллельное выполнение с «B» и «C»? Или только в «А»?

One Solution collect form web for “Очереди диспетчерского барьера в GCD (iOS)”

Только А. Точно это ничего не будет блокировать. Он будет просто ждать, пока все задачи в A будут завершены. B и C будут работать как обычно и могут вызывать их блоки.

https://developer.apple.com/library/mac/documentation/performance/reference/gcd_libdispatch_ref/Reference/reference.html#//apple_ref/c/func/dispatch_barrier_sync

  • Как выполнять несколько асинхронных запросов, начиная один за другим
  • NSOperationQueue, одновременная работа и поток
  • Сохранение основных данных в нескольких потоках
  • Как остановить выполнение задач в очереди отправки?
  • Неверное решение GCD производителя-потребителя Apple doc?
  • Тема убивает ОС
  • Проблема с iphone ios: делегат не отвечает при использовании dispatch_async
  • syscall_thread_switch iOS 8.3 race - ошибка CocoaLumberjack? как отладить это?
  • Установка параллельной работы для NSOperationQueue вызывает только то количество операций
  • Объединение нескольких контекстов дочерних управляемых объектов
  • Подвешивает ли приостановка очереди отправки своей целевой очереди?
  • Interesting Posts
    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.