Вопрос проверяет понимание конкурентного доступа к данным, особенностей DispatchQueue и умение выбирать подходящий механизм синхронизации для сценариев «много чтений — мало записей».
Короткий ответ
barrier в GCD — это специальная задача, которая на concurrent queue выполняется эксклюзивно: она ждёт завершения всех ранее запланированных задач и блокирует выполнение последующих, пока сама не закончится. Это удобно для потокобезопасной записи при параллельных чтениях. Обычно barrier используют в структурах вроде кешей или хранилищ, где чтений много, а записей мало. На serial queue barrier не даёт преимуществ, потому что там и так всё выполняется по очереди.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.