Информация об изменениях

Сообщение Re[5]: Можно ли избавиться от async|await? от 16.12.2025 8:53

Изменено 16.12.2025 8:54 mrTwister

Re[5]: Можно ли избавиться от async|await?
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, mrTwister, Вы писали:


T>>В go все функции асинхронны, у меня уже пальцы устали это писать


S>Вы ошиблись:


S>https://telegra.ph/Go-ne-vse-funkcii-asinhronnye-12-16


По умолчанию вызов функции в Go — синхронный: выполняется в текущей горутине и возвращает управление только после return


Дальше не читал. Горутина в go — это просто структура данных. Как, например, Task в .net. Не в смысле, что это аналог, в смысле что это вспомогательная структура данных для организации вычислений. Вызов функции в go блокирует горутину точно так же, как await блокирует асинхронную функцию в C#

Давай так, объясни, чем в плане поведения (а так же потребление ресурсов, потоков) отличаются C# вариант от go варианта?
[sharp]
async Task<int> SumAsync(int a, int b) {
return a + b;
}

var x = await SumAsync(2, 3);
[/sharp]


func sum(a, b int) int {
    return a + b
}
x := sum(1, 2)
Re[5]: Можно ли избавиться от async|await?
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, mrTwister, Вы писали:


T>>В go все функции асинхронны, у меня уже пальцы устали это писать


S>Вы ошиблись:


S>https://telegra.ph/Go-ne-vse-funkcii-asinhronnye-12-16


По умолчанию вызов функции в Go — синхронный: выполняется в текущей горутине и возвращает управление только после return


Дальше не читал. Горутина в go — это просто структура данных. Как, например, Task в .net. Не в смысле, что это аналог, в смысле что это вспомогательная структура данных для организации вычислений. Вызов функции в go блокирует горутину точно так же, как await блокирует асинхронную функцию в C#

Давай так, объясни, чем в плане поведения (а так же потребление ресурсов, потоков) отличаются C# вариант от go варианта?
async Task<int> SumAsync(int a, int b) {
    return a + b;
}

var x = await SumAsync(2, 3);


func sum(a, b int) int {
    return a + b
}
x := sum(1, 2)