Чем отличается процесс, поток и горутина?
Answer from AI
sobes.tech AI
Процесс — это изолированная единица выполнения с собственным адресным пространством, ресурсами и памятью. Каждый процесс работает независимо, и для обмена данными между процессами обычно используется межпроцессное взаимодействие (IPC).
Поток (thread) — это легковесный поток выполнения внутри процесса, который разделяет с другими потоками этого же процесса память и ресурсы. Потоки позволяют выполнять несколько задач параллельно в рамках одного процесса.
Горутина — это абстракция легковесного потока в языке Go. Горутины намного легче по ресурсам, чем системные потоки, и управляются планировщиком Go runtime. Они позволяют писать конкурентный код проще и эффективнее, чем с использованием обычных потоков.
Пример создания горутины в Go:
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запуск горутины
time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
}