Горутины (goroutines) и каналы (channels)
Часть курса Go
Программе нужно скачать двадцать файлов. Если написать это обычным способом, она скачает первый, подождёт, скачает второй, снова подождёт, и так до конца. Почти всё время при этом уходит впустую: процессор просто стоит и ждёт сеть, которая медленнее его в миллионы раз. Если бы ожидания шли одновременно, работа закончилась бы в двадцать раз быстрее.
Делать несколько дел сразу - самая старая из трудных задач программирования, и в большинстве языков это выходит по-настоящему больно. Go проектировали именно вокруг неё, и в этом уроке это видно лучше всего. Идей здесь всего две. Горутина (goroutine) - часть программы, которая работает параллельно со всем остальным.
Хочешь изучать Go Горутины (goroutines) и каналы (channels) в реальной среде?
Нажми ниже, получи Linux-машину с Go наготове и пройди Горутины (goroutines) и каналы (channels) на практике вместе с AI-наставником, который знает твой код.
Начать этот урокГорутины (goroutines) и каналы (channels)Чему вы научитесь
- The go keyword
- Goroutine lifetime
- Unbuffered channels
- Buffered channels
- Send and receive
- Range over channel
- Close a channel
Читай этот урок на своём языке
Все уроки этого курса
20 уроков- 1Привет, Go25 мин
- 2Переменные и типы25 мин
- 3Управление потоком: if и for30 мин
- 4Функции30 мин
- 5Срезы (slices) и карты (maps)35 мин
- 6Структуры (structs) и указатели (pointers)35 мин
- 7Методы (methods) и интерфейсы (interfaces)35 мин
- 8Обработка ошибок35 мин
- 9Модули (modules) и структура проекта35 мин
- 10Мини-проект на основе CLI40 мин
- 11Обзор стандартной библиотеки40 мин
- 12Тестирование и бенчмарки (benchmarks)40 мин
- 13Горутины (goroutines) и каналы (channels)40 мин
- 14Паттерны параллелизма45 мин
- 15Дженерики (generics)35 мин
- 16HTTP-серверы45 мин
- 17Базы данных с database/sql45 мин
- 18Производительность и профилирование40 мин
- 19Паттерны проектирования в Go40 мин
- 20Развёртывание и эксплуатация45 мин
