NSLock — это рекурсивный лок или обычный? Чем они отличаются?
Чем NSLock отличается от semaphore?
Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Рейтинг:
2
Сложность:
4
NSLock — это нерекурсивный лок. Если поток попытается захватить его повторно, это приведет к deadlock. Для рекурсивных блокировок используйте NSRecursiveLock.
Рейтинг:
5
Сложность:
7
NSLock — это объектная обёртка над mutex, предназначенная для взаимного исключения. Semaphore — более универсальный примитив, работающий на основе счётчика. NSLock всегда пускает только один поток в критическую секцию, semaphore может пускать несколько. NSLock проще и безопаснее для защиты данных. Semaphore чаще используется для координации потоков и ограничения параллелизма.