The Go Blog

Параллелизм — это не то же самое, что и конкуренция

Эндрю Герранд
16 января 2013

Если есть что-то, что большинство людей знают о 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)
Индекс блога

GoRu.dev Golang на русском

На сайте представлена адаптированная под русский язык документация языка программирования Golang