Как работают finalizers в Go?

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

runtime.SetFinalizer устанавливает функцию, вызываемую когда GC собирает объект. Но есть подвохи: порядок вызова не гарантирован, финализер может воскресить объект, финализированный объект освобождается только в следующем GC цикле. Один объект — один финализер. Финализеры бегут в отдельной горутине. Лучше использовать explicit Close() и defer.

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

Как работает testing/iotest?