package
0.0.0-20241225174012-7a0820eadc6a
Repository: https://github.com/chtonad0000/golang.git
Documentation: pkg.go.dev
# README
batcher
*slow.Value
- это аналог atomic.Value
, с двумя ограничениями:
- Вызов
Load()
всегда занимает не меньше 1ms - Нельзя делать больше одного вызова
Load()
в один момент времени.
Реализуйте *Batcher
, который оборачивает *slow.Value
и ускоряет чтения за счёт батчинга.
Например, если 1000 горутин одновременно сделают вызов (*Batcher).Load()
, то можно прочитать
значение один раз и раздать всем ожидающим горутинам. Это будет в 1000 раз быстрее,
чем вызвать (*slow.Value).Load()
напрямую в каждой горутине.
Ваша реализация не должна создавать stale read. То есть, Load()
всегда должен возвращать значение
не старее последнего Store()
на момент начала вызова Load()
.
# Packages
No description provided by the author
# Functions
No description provided by the author