Ответ
Процессы — изолированные экземпляры программ с собственным адресным пространством. Потоки (threads) — легковесные потоки выполнения внутри процесса, разделяющие память. Green Threads — пользовательские потоки, управляемые рантаймом (не ОС), как в ранних версиях Go (до 1.14).
Пример с goroutine (аналог Green Thread в Go):
func main() {
go func() { // goroutine
fmt.Println("Hello from goroutine")
}()
time.Sleep(time.Millisecond) // даем время на выполнение
}
Ключевые отличия:
- Процессы: тяжелые, изолированные.
- Потоки: легче, разделяют память, зависят от ОС.
- Green Threads: управляются рантаймом, более эффективны для concurrency.
В Go сейчас используются гибридные потоки (goroutine + OS threads).