Как устроен sync.Pool внутри?

Senior
119 просмотров
AFK Offer AI

sync.Pool — per-P private и shared списки объектов. Get сначала проверяет private (без лока), потом shared (с локом), потом крадёт у других P. Put кладёт в private. При каждом GC цикле pool полностью очищается (victim cache с Go 1.13 — двухфазная очистка). Поэтому Pool не гарантирует время жизни объекта. Идеален для short-lived буферов.

Следующий вопрос

Что такое snowflake ID?