重複の可能性:
GCD : 2 つのスレッドから変数に読み書きする方法
私はsqliteデータベースを使用しているiOSアプリを開発しています。マルチスレッドを実行する必要がありますが、sqliteデータベースでは一度に1つのことしか実行できません。したがって、セマフォの概念を実装する必要があります。
重複の可能性:
GCD : 2 つのスレッドから変数に読み書きする方法
私はsqliteデータベースを使用しているiOSアプリを開発しています。マルチスレッドを実行する必要がありますが、sqliteデータベースでは一度に1つのことしか実行できません。したがって、セマフォの概念を実装する必要があります。
@synchronized
ディレクティブをミューテックスとして使用できます。シングルトンを使用して作成され、プロジェクト全体で共有される単一のデータ マネージャーで sqlite データベースを操作するためのすべてのメソッドがある場合は、そのオブジェクトをロック トークンとして使用できます。
- (void)myMethod:(id)globalDataManager {
@synchronized(globalDataManager) {
// Everything between the braces is protected by the @synchronized directive.
}
}
@synchronized(self)
また、データ マネージャー内から同じ保護を使用できます。
これにはミューテックスのみが必要なので、セマフォを実装するための余分なコードについて心配する必要はありません。
セマフォの概念を実装する必要があります
セマフォの実装は にあり#include <sys/semaphore.h>
ます。