可能的重复:
GCD:如何从两个线程写入和读取变量 https://stackoverflow.com/questions/11070947/gcd-how-to-write-and-read-to-variable-from-two-threads
我正在开发一个iOS应用程序,其中使用sqlite数据库。我必须执行多线程,但在sqlite数据库上我一次只能做一件事。所以我需要实现信号量的概念。所以请帮助我
您可以使用@synchronized
指令作为互斥体。如果您在使用单例创建并在整个项目中共享的单个数据管理器中拥有操作 sqlite 数据库的所有方法,则可以使用该对象作为锁定令牌,例如:
- (void)myMethod:(id)globalDataManager {
@synchronized(globalDataManager) {
// Everything between the braces is protected by the @synchronized directive.
}
}
从数据管理器中您可以使用@synchronized(self)
以获得同样的保护。
为此,您只需要一个互斥体,因此不必担心用于实现信号量的额外代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)