Зачем использовать горутины вместо потоков в Go

golangасинхронностьгорутинымногопоточностьпотоки