私はObjective-Cプロジェクトでいくつか同期しています。コードは次のようになります。@synchronized(self)のデッドロックを回避する方法は?
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
//some code
@synchronized(self) { //at this line deadlocks
//some code
}
//some code
}
と、この行(@synchronized
)に、デッドロックが常に発生します。このデリゲートメソッドは非常に頻繁に呼び出されることもわかります。
このようなデッドロックを回避するにはどうすればよいですか?
あなたは '@synchronized(self)'を使っていますか? –
私は共有変数、例えばデフォルト値やデータにアクセスするためにこれを使用しています。 –