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

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

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

Определите, какие варианты текста могут появиться в консоли после запуска программы, учитывая работу двух потоков, которые изменяют общие поля объекта.

class State {
    var x = 0
    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()
}