17
SynchronizedϢʔεέʔε
ෳͷεϨου͕ಉ࣌ʹॻ͖ࠐΈʹߦ͘
def add(account: Account, n: Int) = {
account.money += n
Thread.sleep(1000)
println(s"thread: ${Thread.currentThread().getId()}, money: ${account.money}")
}
val jane = new Account("Jane", 100)
val t1 = thread { add(jane, 10) } // εϨου1
val t2 = thread { add(jane, 70) } // εϨου2
t1.join(); t2.join()
class Account(val name: String, var money: Int)
—————————————————————————
thread: 1, money: 180
thread: 2, money: 180
εϨου1͕moneyΛදࣔ͢Δલʹɺ
εϨου2͕moneyΛߋ৽͍ͯ͠Δ