DevPrep

Все темы › Многопоточность и асинхронное программирование

Семафор (semafor)

Middle PRO

Суть

Семафор — примитив синхронизации со счётчиком. wait() уменьшает счётчик и, если он стал отрицательным, блокирует поток до тех пор, пока кто-то не вызовет signal() (увеличивает счётчик и будит одного ждущего). Семафор со значением N пропускает в секцию не более N потоков одновременно; с начальным значением 0 он работает как «сигнал о событии».

В iOS три семейства API:

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store