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