NSLock
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSLocking -
NSObjectProtocol -
Печатаемый -
NSLocking -
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 2.0 и позже.
NSLock объект используется для координирования работы многократных потоков выполнения в том же приложении. NSLock объект может использоваться, чтобы добиться доступа к глобальным данным приложения или защитить критический раздел кода, позволяя ему работать атомарно.
Вы не должны использовать этот класс для реализации рекурсивной блокировки. Вызов lock метод дважды на том же потоке запрет Ваш поток постоянно. Используйте NSRecursiveLock класс для реализации рекурсивных блокировок вместо этого.
Разблокирование незаблокированной блокировки считают ошибкой программиста и нужно фиксировать в Вашем коде. NSLock класс сообщает о таких ошибках путем печати сообщения об ошибке к консоли, когда они происходят.
-
Попытки получить блокировку перед данным временем и возвратами булево значение, указывающее, была ли попытка успешна.
Объявление
Swift
func lockBeforeDate(_limit: NSDate) -> BoolObjective C
- (BOOL)lockBeforeDate:(NSDate *)limitПараметры
limitОграничение по времени для попытки получить блокировку.
Возвращаемое значение
YEStrueесли блокировка получена преждеlimit, иначеNOfalse.Обсуждение
Поток блокируется, пока получатель не получает блокировку или
limitдостигнут.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
Попытки получить блокировку и сразу возвращают булево значение, указывающее, была ли попытка успешна.
Объявление
Swift
func tryLock() -> BoolObjective C
- (BOOL)tryLockВозвращаемое значение
YEStrueесли блокировка была получена, иначеNOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
-
nameСвойствоИмя связалось с получателем.
Обсуждение
Можно использовать строку имени для идентификации блокировки в коде. Какао также использует это имя в качестве части любых описаний ошибок, включающих получатель.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в iOS 2.0 и позже.
