The Go Blog
Параллелизм — это не то же самое, что и конкуренция
Если есть что-то, что большинство людей знают о Go, то это то, что язык был разработан с учетом параллелизма. Ни одна вводная статья о Go не обходится без демонстрации его горутин и каналов.
Но когда люди слышат слово конкуренция (concurrency), они часто думают о параллелизме (parallelism) — связанном, но довольно отдельном понятии. В программировании конкуренция — это составление независимо выполняющихся процессов, а параллелизм — это одновременное выполнение (возможно связанных) вычислений. Конкуренция — это работа с множеством вещей одновременно. Параллелизм — это дело с множеством вещей одновременно.
Чтобы разъяснить это недоразумение, Роб Пайк выступил с докладом на конференции Heroku под названием Concurrency is not parallelism, и видеозапись этого доклада была опубликована несколько месяцев спустя.
Слайды доступны по адресу go.dev/talks (используйте клавиши со стрелками влево и вправо для навигации).
Чтобы узнать больше о примитивах параллелизма в Go, посмотрите видео Go concurrency patterns (слайды).
Следующая статья: go fmt your code
Предыдущая статья: The App Engine SDK and workspaces
(GOPATH)
Индекс блога