Middle+
Каква е разликата между процес, нишка и горутина?
sobes.tech AI
Отговор от AI
Процесът е изолирана единица за изпълнение с собствен адресен обхват, ресурси и памет. Всеки процес работи независимо, а за обмен на данни между процесите обикновено се използва междупроцесна комуникация (IPC).
Потокът (thread) е лек поток за изпълнение вътре в процеса, който споделя паметта и ресурсите с други потоци на същия процес. Потоците позволяват изпълнението на няколко задачи паралелно в рамките на един процес.
Горутина е абстракция на лек поток в езика Go. Горутините са много по-леки по ресурси от системните потоци и се управляват от планировчика на Go runtime. Те позволяват по-лесно и по-ефективно писане на конкурентен код, отколкото с обикновени потоци.
Пример за създаване на горутина в Go:
func sayHello() {
fmt.Println("Здравей от горутината")
}
func main() {
go sayHello() // стартиране на горутината
time.Sleep(time.Second) // изчакваме, за да се изпълни горутината
}