Эйч
Эйч
  • Все менторы
Задачи/Go-разработчик/Конкурентный доступ к map

Конкурентный доступ к map

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

Есть глобальная map[string]int, к которой из горутин одновременно происходит чтение и запись. Нужно устранить падение программы (fatal error: concurrent map read and map write). Какой способ решения применить?

gopackage main

import (
 "fmt"
 "sync"
 "time"
)

var (
 mu sync.RWMutex
 m  = map[string]int{"a": 1}
)

func main() {
 go read()
 time.Sleep(1 * time.Second)
 go write()
 time.Sleep(1 * time.Second)
}

func read() {
 for {
  mu.RLock()
  fmt.Println(m["a"])
  mu.RUnlock()
 }
}

func write() {
 for {
  mu.Lock()
  m["a"] = 2
  mu.Unlock()
 }
}

Профессия

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

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

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

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

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

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

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

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

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