Re[3]: Замыкания и Reference Counting
От: vsb Казахстан  
Дата: 19.10.24 18:32
Оценка:
Здравствуйте, Worminator X, Вы писали:

vsb>>С замыканиями очень просто создать циклическую ссылку. Reference counting будет работать, но нужно не забывать руками рвать циклы. С GC это всё, конечно, намного проще.


WX>Обычно для этого захватываемые переменные (поля объекта-замыкания) делают неизменяемыми, например, такое долгое время было в Java.


В Java и сейчас так (та ещё дурость).

WX>В результате присвоить им значение функции с замыканиями нельзя, и циклические ссылки невозможны.


Поле неизменяемое, а содержимое изменяемое.

final var reference = new AtomicReference<>();
Runnable runnable = () -> System.out.println(reference.get());
reference.set(runnable);


WX>Там, где зачем-то возможны (сложно придумать такую задачу), скорее всего, без GC не обойтись.


Везде сплошь и рядом.
Отредактировано 19.10.2024 18:34 vsb . Предыдущая версия . Еще …
Отредактировано 19.10.2024 18:34 vsb . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.