Назад к задачам
Junior — Senior
5

Возможные результаты вывода в консоль при использовании volatile

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Определите, какие варианты строк могут появиться в консоли после выполнения приведённого кода.

class State {
    volatile var x = 0
    volatile var y = 0
}

fun main() {
    val state = State()

    val t1 = Thread {
        state.x = 1
        println(state.y)
    }

    val t2 = Thread {
        state.y = 1
        println(state.x)
    }

    t1.start()
    t2.start()
    t1.join()
    t2.join()
}