条件锁

作者: 前年的邂逅_Jerry | 来源:发表于2018-04-15 10:03 被阅读10次

一、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];
}

相关文章

  • 多线程锁

    互斥锁: 条件锁:

  • 条件锁

    一、NSCondition 与 NSConditionLock 1、NSCondition 需要外部定义条件变...

  • 死磕 java同步系列之ReentrantLock源码解析(二)

    问题 (1)条件锁是什么? (2)条件锁适用于什么场景? (3)条件锁的await()是在其它线程signal()...

  • 【第58天】python全栈从入门到放弃

    1 递归锁Rlock()和互斥锁 递归锁 互斥锁 2 条件Condition 条件的例子 3 守护进程和守护线程与...

  • MySQL间隙锁

    间隙锁(Next-Key锁)当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件...

  • iOS中目前最喜欢用的四种锁

    dispatch_semaphore_t(信号锁) NSLock(锁) NSConditionLock(条件锁) ...

  • 013-iOS锁机制

    锁的类别 NSLockingNSLockNSConditionLock 条件锁NSRecursiveLock 递归...

  • 互斥锁-读写锁-条件锁

    一,使用互斥锁 1,初始化互斥量 不能拷贝互斥量变量,但可以拷贝指向互斥量的指针,这样就可以使多个函数或线程共享互...

  • 生产者模型和消费者模型

    一.单锁双条件的实现 二.双锁双条件的实现 三. 两种实现的比较 因为单锁双条件只有一个锁,所以读的时候不能写,写...

  • POSIX Conditions

    ****POSIX**** 条件锁需要互斥锁和条件两项来实现,虽然看起来没什么关系,但在运行时中,互斥锁将会与条件...

网友评论

      本文标题:条件锁

      本文链接:https://www.haomeiwen.com/subject/pctkmxtx.html