NSRecursiveLock
NSRecursiveLock
определяет блокировку, которая может быть получена многократно тем же потоком, не вызывая мертвую блокировку, ситуация, где поток постоянно блокируется, ожидая себя для отказа от блокировки. В то время как поток блокировки имеет одну или более блокировок, всем другим потокам препятствуют получить доступ к коду, защищенному блокировкой.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSLocking
-
NSObjectProtocol
-
Печатаемый
-
NSLocking
-
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Попытки получить блокировку перед данной датой.
Объявление
Swift
func lockBeforeDate(_
limit
: NSDate) -> BoolObjective C
- (BOOL)lockBeforeDate:(NSDate *)
limit
Параметры
limit
Время, перед которым должна быть получена блокировка.
Возвращаемое значение
YES
true
если блокировка получена преждеlimit
, иначеNO
false
.Обсуждение
Поток блокируется, пока получатель не получает блокировку или
limit
достигнут.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Попытки получить блокировку, и сразу возвращают булево значение, указывающее, была ли попытка успешна.
Объявление
Swift
func tryLock() -> Bool
Objective C
- (BOOL)tryLock
Возвращаемое значение
YES
true
в случае успеха, иначеNO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Имя связалось с получателем.
Обсуждение
Можно использовать строку имени для идентификации блокировки в коде. Какао также использует это имя в качестве части любых описаний ошибок, включающих получатель.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.5 и позже.