如何在iOS应用程序中实现互斥锁

可能重复:
GCD:如何从两个线程写入和读取variables

我正在开发一个iOS应用程序,其中我正在使用SQLite数据库。我必须执行multithreading,但在SQLite数据库我一次只能做一件事情。所以我需要实现信号量的概念。所以PLZ帮助我

您可以使用@synchronized指令作为互斥体。 如果你有所有的方法来操作sqlite数据库在一个单一的数据pipe理器创build使用单例,并在项目中共享,您可以使用该对象作为locking令牌,例如:

 - (void)myMethod:(id)globalDataManager { @synchronized(globalDataManager) { // Everything between the braces is protected by the @synchronized directive. } } 

从数据pipe理器中,您可以使用@synchronized(self)进行相同的保护。

你只需要一个互斥体,所以不用担心额外的代码实现信号量。

我需要实现信号量的概念

信号量实现可以在#include <sys/semaphore.h>