作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我试图让一个函数等待另一个函数,我想使用 NSCondionLock 来完成这个。我不是在寻求帮助,而是真的希望有人能给我一个像样的教程或示例来解释 NSConditionLock,或者可能建议一个更好的方法。
最佳答案
编辑:正如@Bonshington 评论的那样,这个答案指的是NSCondition
(与NSConditionLock
相对):
- (void) method1 {
[myCondition lock];
while (!someCheckIsTrue)
[myCondition wait];
// Do something.
[myCondition unlock];
}
- (void) method2 {
[myCondition lock];
// Do something.
someCheckIsTrue = YES;
[myCondition signal];
[myCondition unlock];
}
someCheckIsTrue
可以是任何东西,它可以是一个简单的 BOOL 变量,甚至可以是 [myArray count] == 0 && color == kColorRed
,它不是没关系。唯一重要的是,在一种方法中,在您拥有锁的情况下检查条件,而在另一种方法中,您进行更改以使条件变为真也在拥有锁的情况下 .神奇的是 wait
和 signal
部分:wait
实际上解锁锁并在其他线程调用 signal
.
关于iphone - 我如何使用 NSConditionLock?或 NSCondition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6704072/
我试图让一个函数等待另一个函数,我想使用 NSCondionLock 来完成这个。我不是在寻求帮助,而是真的希望有人能给我一个像样的教程或示例来解释 NSConditionLock,或者可能建议一个更
我是一名优秀的程序员,十分优秀!