Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
1

Сборка мусора

15.07.2010, 15:34. Показов 2800. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток

Есть такой вопрос, касающийся сборки мусора. Если два объекта (или более, например 100) имеют ссылки друг на друга , но в программе ни на один из этих объектов нет ссылок, вся эта связанная структура удаляется обычным образом сборщиком мусора?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class A
{
    A next;
}
 
/*....*/
 
A a,b,c;
 
/*....*/
 
a.next = b;
b.next = c;
c.next = a;
 
a=null;
b=null;
c=null;
 
// В памяти структура осталась???
Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2010, 15:34
Ответы с готовыми решениями:

Сборка мусора
Сейчас читаю книгу "Pro C# 5.0 and the .NET 4.5 Framework" - Andrew Troelsen. Дошел до главы о...

Сборка мусора .NET
У меня такой вопрос. class First { Second ob = new Second(); ~First() ...

А будет ли сборка мусора?
Всем привет! Посмотрите внимательно на следующий код: namespace Temp { public class...

Увеличение объемов занимаемой памяти и "сборка мусора"
Каждый раз после открытия и закрытия формы занимаемая память в "управляемой куче" увеличивается на...

10
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
15.07.2010, 16:07 2
Через некоторый момент, после того, как в программе просходят изменения, сборщик мусора в отдельном потоке проверяет кучу, находит объекты, на которые нет ссылок и освобождает память.
Так что сразу сказать, что объекты удалены нельзя. Но они будут удалены. ИМХО.
1
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
15.07.2010, 16:20  [ТС] 3
Да, про то что сборка мусора не сразу я помню
Вопрос немного в другом
На объекты, на которые ссылались a, b и с, ссылки то вроде как остались (next) от "соседних" объектов. Вот про это спрашиваю. Получается замкнутая структура, на каждый объект есть ссылка внутри этой структуры.
Вопрос про это
0
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
15.07.2010, 16:27 4
вопрос с подвохом ) Тут я думаю проверяется доступность объекта извне.
1
Заблокирован
15.07.2010, 16:27 5
Цитата Сообщение от s-kvv Посмотреть сообщение
вся эта связанная структура удаляется обычным образом сборщиком мусора?
Да, всё удалится.
1
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
15.07.2010, 16:54  [ТС] 6
Про сборщик мусора читал где-то (не помню) что он работает методом подсчета ссылок на объект. Когда количество ссылок становится равно 0, сборщик, при очередном проходе освобождает занятую память.
Т.к. тут явно на каждый объект осталось по 1 ссылке и нет "точки входа для проверки истенности ссылок", они замкнуты, - по этому и возник вопрос.
0
Заблокирован
15.07.2010, 17:18 7
Цитата Сообщение от s-kvv Посмотреть сообщение
Про сборщик мусора читал где-то (не помню) что он работает методом подсчета ссылок на объект. Когда количество ссылок становится равно 0, сборщик, при очередном проходе освобождает занятую память.
Т.к. тут явно на каждый объект осталось по 1 ссылке и нет "точки входа для проверки истенности ссылок", они замкнуты, - по этому и возник вопрос.
Не читай больше этого. Оно тебе в прок не идёт.

Сборщик мусора строит граф и ищет есть ли к данному объекту цепочка сильных ссылок от корневой сильной ссылки.
0
1319 / 992 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
16.07.2010, 02:29 8
хотя в Java, кста, так и сделано в лоб, как написано "там, где тебе читать не надо"

продолжая слова NightmareZ рекомендую почитать про слабые ссылки
1
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
16.07.2010, 05:59  [ТС] 9
Цитата Сообщение от Mikant Посмотреть сообщение
хотя в Java, кста, так и сделано в лоб, как написано "там, где тебе читать не надо"
Наверно с java и спутал, неск лет назад занимался этим, потом другие интересы появились
Про ссылки почитаю
0
4337 / 1506 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
16.07.2010, 10:37 10
Цитата Сообщение от s-kvv Посмотреть сообщение
Про сборщик мусора читал где-то (не помню) что он работает методом подсчета ссылок на объект.
Этот подход не используется ни в .NET, ни в java.
0
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
17.07.2010, 15:59  [ТС] 11
Спасибо всем
Поигрался с WeakReference и GC, да, все удаляется
Этот подход не используется ни в .NET, ни в java.
Значит я ошибся
0
17.07.2010, 15:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2010, 15:59
Помогаю со студенческими работами здесь

Сборщик мусора
Здравствуйте, есть такая проблема. Идет работа с прибором, который в реальном времени шлет данные,...

GC Сборщик мусора .NET C#
Проблемам в следующем, прочитал и посмотрел несколько статей и видео. И с технический стороны всё...

Существует ли в C# сборщик мусора
Подскажите пожалуйста, а когда мы создаем экземпляр формы, его надо потом как то уничтожать при...

Библиотека, сборщик мусора
Доброго времени суток, возникла проблема, если вкратце о ней то есть библиотека где происходит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru