@synchronized() ディレクティブ
公開日:
:
最終更新日:2013/11/10
Objective-C
sonson
『selectedIndexがメンバ変数なら,lockかけないとマズいですね.
@synchronized{}でくくれば,自動的にロックされるはずです.多分.』
sonson++
@synchronized() ディレクティブは、コードの一部を 1 つのスレッドで使用するようにロックします。スレッドが保護コードを抜け出すまで、つまり、@synchronized() ブロックの最後の文を通過するまで、他のスレッドはブロックされます。
Account *account = [Account accountFromString:[accountField stringValue]];
double deposit_amount = [amountField doubleValue];
double balance;
// セマフォを取得する。
id accountSemaphore = [Account semaphore];
@synchronized(accountSemaphore) {
// クリティカルコード。
balance = [account balance] + deposit_amount;
[account setBalance:balance];
}
[balanceField setDoubleValue:balance]
関連記事
- PREV
- 電脳メガネのソースコードをCodeReposにcommitしました
- NEXT
- ユビキタスとは何か