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