Re[6]: Можно ли избавиться от async|await?
От: mrTwister Россия  
Дата: 14.12.25 14:54
Оценка:
Здравствуйте, Doom100500, Вы писали:

D>Тогда в чём разница между этими вызовами?


Я не понял, что ты хотел продемонстрировать этими примерами

D>Какой поток операционной системы?


D>https://go.dev/tour/concurrency/1

D>

D>A goroutine is a lightweight thread managed by the Go runtime.


Главное слово выделил, горутина — это внутренняя структура в go, которая не имеет никакого отношения к потокам. Это что-то типа класса Task в C#

D>Программа на любом языке состоит из, как минимум, одного потока, который не блокирует современную многозагачную операционную сицтему.


Разница в том, что если, например в C# я запущу параллельно 1000 функций Thread.Sleep, то я создам и заблокирую 1000 потоков операционной системы, потому что Thread.Sleep синхронная. Если я запущу в go в горутинах 1000 функций time.Sleep, я не создам ни одного дополнительного потока операционной системы, потому что time.Sleep как и все остальные функции в go асинхронная. Аналогом time.Sleep из go является в .net Task.Delay, вот она асинхронная.
лэт ми спик фром май харт
Отредактировано 14.12.2025 14:54 mrTwister . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.