Давайте рассмотрим потенциальное состояние гонки, связанное со скоростью сбора мусора.
Исходное состояние:
main => a
a => b
b => c
main объект программных ссылок a , объект a ссылки b , b ссылки c .Теперь мы хотим сделать a эталон c вместо b .
Good:
a => c
As *На 1029 * b больше нет ссылок, это может быть сборщик мусора.
Плохо:
a = null
a => c
Между этими двумя шагами (установка a на нольи перенаправив его на c ), b может стать сборщиком мусора вместе с c .Я сомневаюсь, что такого рода ошибки могут быть обнаружены модульными тестами, поскольку GC, скорее всего, не будет работать достаточно быстро, чтобы столкнуться с проблемами.Одним из способов обнаружения проблемы является принудительное использование GC или, по крайней мере, увеличение его частоты.Есть ли какой-либо параметр командной строки или другой способ сделать это?Если нет, какие другие автоматизированные средства предотвращения подобных ошибок у нас есть?