Что такое finalizer?

Middle+
424 просмотров
AFK Offer AI

Finalizer — функция, которая вызывается GC перед освобождением объекта. Устанавливается через runtime.SetFinalizer(obj, func). Когда GC обнаруживает, что объект unreachable и у него есть финализатор, он не освобождает объект сразу — помечает для финализации. Отдельная горутина вызывает финализатор, после чего объект может быть собран в следующем цикле GC. Типичное применение — закрытие файлов, сетевых соединений. Но лучше не полагаться на финализаторы — используй defer и явное закрытие.

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

Что такое Loki?