// личный канал‑лог
gavrilovlog
← все записи

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

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