Сообщение Re[11]: Можно ли избавиться от async|await? от 16.12.2025 9:46
Изменено 16.12.2025 9:48 mrTwister
Re[11]: Можно ли избавиться от async|await?
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, mrTwister, Вы писали:
T>>Дак я не в потоке вызывал. Выделил главное. Ключевое слово "go" не в потоке запускает
S>В потоке (для каждого go создается свой поток), вот доказательство: https://go.dev/play/p/oDoPGmB7QU1
Блин, не не спорь пожалуйста, ты же понятия не имеешь, как работает go, но споришь
S>Если бы не в потоке, то вывод был бы последовательный — а так какая успела — та первой счетчик и изменила.
Нет конечно, time.Sleep создает под капотом таймер, который при срабатывании вызывает continuation у горутины. В зависимости от того, в каком порядке сработали эти таймеры, получится разный порядок цифр.
Go выполняет горутины в тредпуле, но размер этого тредпула фиксирован и определяется при старте программы (по умолчанию равен количеству ядер процессора). При этом ты можешь запустить свою программу с переменной окружения GOMAXPROCS=1, в этом случае для выполнения всех горутин будет использоваться один единственный поток ОС
S>Здравствуйте, mrTwister, Вы писали:
T>>Дак я не в потоке вызывал. Выделил главное. Ключевое слово "go" не в потоке запускает
S>В потоке (для каждого go создается свой поток), вот доказательство: https://go.dev/play/p/oDoPGmB7QU1
Блин, не не спорь пожалуйста, ты же понятия не имеешь, как работает go, но споришь
S>Если бы не в потоке, то вывод был бы последовательный — а так какая успела — та первой счетчик и изменила.
Нет конечно, time.Sleep создает под капотом таймер, который при срабатывании вызывает continuation у горутины. В зависимости от того, в каком порядке сработали эти таймеры, получится разный порядок цифр.
Go выполняет горутины в тредпуле, но размер этого тредпула фиксирован и определяется при старте программы (по умолчанию равен количеству ядер процессора). При этом ты можешь запустить свою программу с переменной окружения GOMAXPROCS=1, в этом случае для выполнения всех горутин будет использоваться один единственный поток ОС
Re[11]: Можно ли избавиться от async|await?
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, mrTwister, Вы писали:
T>>Дак я не в потоке вызывал. Выделил главное. Ключевое слово "go" не в потоке запускает
S>В потоке (для каждого go создается свой поток), вот доказательство: https://go.dev/play/p/oDoPGmB7QU1
Блин, не не спорь пожалуйста, ты же понятия не имеешь, как работает go, но споришь
S>Если бы не в потоке, то вывод был бы последовательный — а так какая успела — та первой счетчик и изменила.
Нет конечно, time.Sleep создает под капотом таймер, который при срабатывании вызывает continuation у горутины. В зависимости от того, в каком порядке сработали эти таймеры, получится разный порядок цифр.
Go выполняет горутины в тредпуле, но размер этого тредпула фиксирован и определяется при старте программы (по умолчанию равен количеству ядер процессора). При этом ты можешь запустить свою программу с переменной окружения GOMAXPROCS=1, в этом случае для выполнения всех горутин будет использоваться один единственный поток ОС, что не помешает всем горутинам выполняться "одновременно", то есть конкурентно.
S>Здравствуйте, mrTwister, Вы писали:
T>>Дак я не в потоке вызывал. Выделил главное. Ключевое слово "go" не в потоке запускает
S>В потоке (для каждого go создается свой поток), вот доказательство: https://go.dev/play/p/oDoPGmB7QU1
Блин, не не спорь пожалуйста, ты же понятия не имеешь, как работает go, но споришь
S>Если бы не в потоке, то вывод был бы последовательный — а так какая успела — та первой счетчик и изменила.
Нет конечно, time.Sleep создает под капотом таймер, который при срабатывании вызывает continuation у горутины. В зависимости от того, в каком порядке сработали эти таймеры, получится разный порядок цифр.
Go выполняет горутины в тредпуле, но размер этого тредпула фиксирован и определяется при старте программы (по умолчанию равен количеству ядер процессора). При этом ты можешь запустить свою программу с переменной окружения GOMAXPROCS=1, в этом случае для выполнения всех горутин будет использоваться один единственный поток ОС, что не помешает всем горутинам выполняться "одновременно", то есть конкурентно.