ShardedCounter: счётчик на ячейках
Иногда лучший мьютекс — тот, которого нет. Реализуйте ShardedCounter: каждая горутина пишет в свою ячейку без блокировок, Total — сумма ячеек.
Показать решение
GolangРешение
func (c *ShardedCounter) Inc(i int) {
c.cells[i]++
}
func (c *ShardedCounter) Total() int64 {
var sum int64
for _, v := range c.cells {
sum += v
}
return sum
}Записаться на разбор
10 000 ₽ · 60 минут · онлайн