Решение Reader Writer с использованием настраиваемой параллельной цели c - PullRequest
0 голосов
/ 28 июня 2018

Если мы используем настраиваемую параллельную очередь для решения этой проблемы, почему мы используем dispatch_sync для чтения и dispatch_async с барьером для записи?

Разве мы не можем использовать dispatch_async для чтения?

Какая здесь разница?

1 Ответ

0 голосов
/ 09 января 2019

Разве мы не можем использовать dispatch_async для чтения?

Нет, dispatch_async говорит: «Отправьте этот блок кода для асинхронного запуска, но не ждите его завершения». Но цель «читателя» - обеспечить потокобезопасный доступ к значению и вернуть это значение. Если вы используете dispatch_async, вы можете вернуться назад из метода «reader», прежде чем блок dispatch_async сможет запустить.

...