Конкурентные операции

Всем привет Появилась пара заданий в учебном курсе, в которых требуется, например,сделать запись значений в мапу КОНКУРЕНТНО, возвести значения в квардрат КОНКУРЕНТНО и еще несколько в которых тоже что-то нужно деать КОНКУРЕНТНО. Я вот никак не могу понять, что значит конкурентно? Моржет ли кто-нибудь привести пример именно конкурентных операций, но настолько простой пример, как будто ребенку показывать будете.

Если важно то язык go, но не думаю что такие вещи привязаны к языку

Вот как я понял. Задача ё

Написать программу, которая конкурентно рассчитает значение квадратов чисел взятых из массива (2,4,6,8,10) и выведет их квадраты в stdout.

Вот какое у меня решение если под конкурентностью подразумевается параллельные вычисления.

package main

import "fmt"

func square(num int) {
    fmt.Println(num * num)
    // fmt.Fprintln(os.Stdout, num*num)
}

func do() {
    nums := [...]int{2, 4, 6, 8, 10}
    for _, num := range nums {
        go square(num)//параллельные вызовы square
    }
    fmt.Scanln()
}

Ответы (2 шт):

Автор решения: CrazyElf

Насколько я понимаю, это плохая калька с английского concurrent, т.е. одновременно или параллельно.
Когда несколько операций выполняются параллельными потоками. Например, есть числа от 1 до 10 и вы их многопоточно возводите в квадрат, чтобы затратить на это меньше времени. Или что-то записываете в какой-то контейнер из разных потоков. И т.п.

Update: Как правильно замечают в комментарии, есть мнение, что concurrency и parallelism - это не совсем одно и то же. На мой взгляд это вопрос философский. Нужно смотреть реализации конкретных концепций в конкретных языках программирования для понимания деталей. Вот например асинхронность - это действительно не тоже самое, что параллельное исполнение.

Вообще, есть же такой же глагол калька с английского "конкурировать" и существительное "конкуренция", возможно в данном случае это вот про конкуренцию за некоторый ресурс. И обычно такая конкуренция обеспечивается именно тем, что разные ветви кода выполняются в разных потоках.

→ Ссылка
Автор решения: Pavel Mayorov

Конкурентными называются операции, которые пересекаются друг с другом во времени. Например, конкурентной записью в словарь называется ситуация, когда один поток начинает записывать что-то в словарь пока второй поток заканчивает делать то же самое.

→ Ссылка