Ответы пользователя по тегу Go
  • Как удалять из map в цикле если цикл защищён через RWMutex.RLock() в Golang?

    @GeckoGreen
    4 вариант почти тоже, что и 3, ибо до RUnlock() все рутины будут в спячке, а после этого начнут конкурировать за захват мьютекса. Поэтому третий лучше четвертого будет.
    2 вариант получится реализовать только путем реализации своего мьютекса, что не самый лучший вариант. Можно, конечно, использовать 1 вариант, но там свистопляски с мьютексами и поэтому может получиться медленнее не очень эффективно. Возможен 5 вариант. Если удаление будет происходить только в 1 рутине, то можно делать новую мапу, а после скана подменять переменную. Но результат, естественно, будет после окончания цикла.
    Ответ написан