synchronized
Warning since 1.6
inline fun <R> synchronized(lock: Any, block: () -> R): R(source)
import kotlin.concurrent.thread
var counter = 0
val lock = Any()
fun increment() {
synchronized(lock) {
counter++
}
}
fun main() {
val threads = List(10) {
thread {
repeat(1000) { increment() }
}
}
threads.forEach { it.join() }
println("Counter: $counter") // Should print 10000
}