← все записи

На собесах в LiveCoding просят реализовать простую программу с Race Condition.

👁 449
В этом примере мы определяем глобальную переменную counter и функцию incrementCounter(), которая использует time.Sleep() для увеличения значения counter на 1 через 1 секунду. Затем мы запускаем две горутины, каждая из которых вызывает функцию incrementCounter() для увеличения значения counter на 1. После этого мы используем time.Sleep() для ожидания 2 секунд и вывода значения counter на экран. Однако, так как обе горутины могут быть выполнены параллельно, то обе горутины могут попытаться обновить значение counter одновременно, что приведет к состоянию гонки и непредсказуемому значению counter. Например, если первая горутина успеет выполнить свою задачу быстрее, чем вторая горутина, то конечное значение counter будет равно 1, хотя мы ожидаем значение 2.
71

Кирилл Гаврилов

Подписаться