Эйч
Эйч
  • Все менторы
Задачи/Go-разработчик/Состояние гонки в несинхронизированном счетчике

Состояние гонки в несинхронизированном счетчике

Условие задачи

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

gotype SafeCounter struct {
  v map[string]int
}

func (c *SafeCounter) Inc(key string) {
  c.v[key]++
}

func (c *SafeCounter) Value(key string) int {
  return c.v[key]
}

func main() {
  c := SafeCounter{v: make(map[string]int)}
  for i := 0; i < 1000; i++ {
    go c.Inc("somekey")
  }

  time.Sleep(time.Second)
  fmt.Println(c.Value("somekey"))
}

Профессия

Go-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта