C# では非常に簡単です。
class Class1{
private static readonly object locker = new object();
void Method1(){
lock(locker) { .... }
}
}
this
また、デッドロックにつながる可能性があるため、同期を行うべきではありません。同様に、Scala では例を見ましたが、同期を行うために使用する必要がある同期とオブジェクト (フィールド) の基本原則が何であるかを理解できませんでした。
#1
def add(user: User) {
// tokenizeName was measured to be the most expensive operation.
val tokens = tokenizeName(user.name)
tokens.foreach { term =>
userMap.synchronized {
add(term, user)
}
}
}
#2
class Person(var name: String) {
def set(changedName: String) {
this.synchronized {
name = changedName
}
}
}
#3 and so on...
はっきりさせてくれませんか?