LockBlocks 为 Objective-C 中的 Lock 对象添加了 block 方法。它还添加了一个读写锁类。
不用这样调用
[myLock lock];
... critical code ...
[myLock unlock];
使用 LockBlocks,您可以使用基于 block 的方法来为您调用加锁和解锁
[myLock executeInLock:^{
... critical code ...
}];
这更清楚地划分了您的代码中的临界区,并有助于避免忘记释放锁。
LockBlocks 还添加了一个 Objective-C 版本的读写锁(使用 pthreads 实现)。这使得您可以使用独占/非独占锁。请参阅 DRReadWriteLock.h 中的关于递归(回溯)的重要说明。
我强烈建议您使用 CocoaPods 将 LockBlocks 集成到您的应用中。如果您不熟悉它,CocoaPods 是一个用于 Objective-C 项目的极其简单的依赖项管理器。您可以在这里获取更多信息。
如果您使用的是 CocoaPods,只需在您的 Podfile 中添加以下行即可
pod 'LockBlocks', '0.0.1'
然后您就完成了。
如果您没有使用 CocoaPods(为什么不呢?你有什么问题???),那么您只需将 LockBlocks 源代码抓取并放入您的项目中。
LockBlocks 版本 0.0.1 仍然是一个测试版本。一些方法尚未经过充分测试。请自行承担风险,并在遇到任何问题时请提交错误报告。
如果您在项目中使用 LockBlocks,我很乐意听到关于它的信息。
电子邮件:[email protected]
twitter: @nate_petersen