func main() {
// Мы говорим "менеджеру": вот тебе задача, запусти ее!
// Не жди ее завершения, давай дальше.
go doLongNetworkRequest() // Эту задачу "менеджер" отдаст, например, Работнику №1
// А мы пока делаем что-то еще. Эту задачу "менеджер" может отдать Работнику №2
doAnotherTask()
} Критерий | Конкурентность (Concurrency) | Параллелизм (Parallelism) |
Суть | Структура. Способ организации и написания кода. | Выполнение. Способ запуска кода на железе. |
Аналогия | Один бариста, который быстро переключается между задачами. | Два бариста, которые делают разные задачи одновременно. |
Железо | Может быть реализована на одном ядре. | Требует нескольких ядер процессора. |
Цель | Сделать программу отзывчивой, правильно структурировать логику. | Ускорить вычисления, повысить производительность. |