megakor
@megakor
Go/PHP developer | Вконтакте

Как одна горутина может обращаться к переменной из стэка другой горутины?

Знающие, объясните.

Представим следующий код:
func main() {
    a := 1

    go func() { println(a) }

    // ...
}


То что тут потенциально может быть data race я понимаю, вопрос не об этом.

Функция main имеет свой стэк, в которой лежит переменная a.
Затем запускается другая горутина и читает значение переменной a и другой горутины (main).

Как это работает под капотом? Разве одна горутина имеет доступ к стэку другой горутины?
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
megakor
@megakor Автор вопроса
Go/PHP developer | Вконтакте
Я сделал escape анализ и выяснил, что компилятор умный и предугадывает такие моменты и создает переменную сразу в heap.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы