Back to questions
Junior — Middle
91
В чем преимущества использования горутин по сравнению с системными потоками для повышения производительности приложений?
Companies where asked
Lamoda Tech
Answer from AI
sobes.tech AI
Горутины в Go имеют несколько преимуществ перед системными потоками:
- Легковесность: горутины занимают гораздо меньше памяти (обычно несколько килобайт), в то время как системные потоки требуют значительно больше ресурсов.
- Масштабируемость: можно запускать тысячи и даже миллионы горутин одновременно, что сложно с потоками.
- Быстрое переключение контекста: планировщик Go эффективно управляет горутинами, переключаясь между ними быстрее, чем ОС между потоками.
- Простота синхронизации: встроенные каналы и другие примитивы упрощают обмен данными между горутинами.
Пример создания горутины:
package main
import (
"fmt"
"time"
)
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запуск горутины
time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
}