Почему MCNearbyServiceAdvertiser использует внутреннюю очередь отправки?

Пока я просматривал заголовки среды выполнения iOS 7, что-то привлекло мое внимание. В классе MCNearbyServiceAdvertiser, являющемся частью инфраструктуры Multipeer Connectivity, свойство называется syncQueue есть и несколько методов с префиксом sync определены. Некоторые из этих методов существуют в префиксной и нефиксированной версии, например: startAdvertisingPeer а также syncStartAdvertisingPeer,

Мой вопрос: какова цель этого свойства и этих префиксных методов и как они объединяются?

(edit: удалено замечание, что очередь является последовательной, как указано CouchDeveloper, поскольку мы не можем этого знать)

1 ответ

Как вы знаете, реализация является частной.

Наличие очереди отправки, чье имя syncQueue может не означать, что эта очередь является последовательной очередью. Это может быть и параллельная очередь.

Мы можем только догадываться, что startAdvertisingPeer и "префикс" версия syncStartAdvertisingPeer может означать.

Например, для выполнения внутренних предпосылок startAdvertisingPeer Можно предположить, что он всегда вызывается из контекста выполнения, кроме syncQueue. Таким образом, он может синхронно отправлять в syncQueue с вызовом syncStartAdvertisingPeer не попадая в тупик. С другой стороны, syncStartAdvertisingPeer всегда предполагает выполнение в syncQueue, что гарантирует параллелизм.

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

Другие вопросы по тегам