一、NSCondition 与 NSConditionLock
1、NSCondition 需要外部定义条件变量
2、NSConditionLock 自带条件,如:
self.conditionLock = [[NSConditionLock alloc] initWithCondition:10];
[self.conditionLock lockWhenCondition:10];
二、条件锁的使用
1、NSConditionLock
NSConditionLock * conditionLock = [[NSConditionLock alloc] initWithCondition:10];
//当条件为9时,不会向下执行
[conditionLock lockWhenCondition:10];
//code
[conditionLock unlockWithCondition:10];
2、NSCondition
- (void)viewBlock{
[NSThread detachNewThreadSelector:@selector(threadEvent:) toTarget:self withObject:nil];
}
- (void)threadEvent:(id)thread{
_condition = [[NSCondition alloc] init];
//等待
[_condition wait];
NSLog(@"event finished");
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[_condition signal];
}
网友评论