Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Вниз

delphi = pascal = языки для начинающих   Найти похожие ветки 

 
uw ©   (2007-11-16 14:38) [400]

Есть набор совершенно произвольных классов, о каждом из которых известно лишь то, что он имеет метод execute.

Кривобокие несколько классы - творить их нужно в два приема, а убивать хотим одним ударом :-) Иначе говоря, их сначала нужно сотворить, а потом сказать "ха", т.е. вдохнуть в них жизнь, чтобы они зашевелились. Акт творения и оживления, вообще-то, легко было делать в одном лишь конструкторе.   Но уж если там, где легко, делаем в два шага, то почему же и на убиение не потратить ровно столько же!

Хотя, я согласен, кривость финализатора не украшает Яву :-)


 
Piter ©   (2007-11-19 12:24) [401]

дядя Юра, нашел специально для вас. Рихтер, четвертое издание, страница 79, цитирую:

"... система высвобождает все принадлежащие процессу ресурсы: возвращает себе выделенную им память, закрывает любые открытые файлы, уменьшает счетчики соответствующих объектов ядра и разрушает все его User- и GDI-объекты.
 По завершении процесса (не важно каким способом) система гарантирует: после него ничего не останется - даже намеков нато, что он когда-то выполнялся. Завершенный процесс не оставляет за собой никаких следов. Надеюсь, я сказал ясно."

Выделено не мною!

Итак, с одной стороны источник - Рихтер, с другой - Юрий Зотов, мнения противоположны. Это уже повод задуматься. Но на высказывания ЮЗ я самолично написал тестовый пример и он опроверг его мнение (пример можно найти выше) и полностью подтверждает написанное Рихтером. Что же остается то?

А после этого Юрий меня убеждает в том, что я нихрена не понимаю и не стоит мне вмешиваться в дискуcсию. Ведь каждый школьник знает, что Рихтер - лжец.

Вот это и очень не нравится, убеждение в своей правоте ВОТ ТАКИМ ВОТ образом.


 
Юрий Зотов ©   (2007-11-19 14:02) [402]

Миша, прошла неделя. Сколько нужно времени, чтобы твое ущемленное самолюбие успокоилось?

1. Тебе в этой же ветке не раз говорили (и не только я), что теория и практика не всегда совпадают. И DLL может не освобождаться, и файлы почему-то лочатся, и ресурсов GDI вдруг перестает хватать, а уж завис коннекта к БД - так это завсегда пожалуйста.

2. В этой же ветке ты неоднократно путал сборку мусора и освобождение неуправляемых ресурсов - что однозначно говорит о непонимании сути вопроса. На что тебе и было указано (и тоже не только мною) - но ты с непонятным упорством и продолжал спорить неизвестно о чем, и продолжал путать зеленое со сладким.

3. Хочешь, чтобы я извинился? ОК, извини. Но прими, пожалуйста во внимание, что впредь, как только я увижу, что ты споришь о чем-либо, толком не понимая предмета (а за тобой такое водится), об этом будет сказано открыто и прямо.

И на этом я разговор заканчиваю.


 
Mystic ©   (2007-11-19 16:03) [403]

> ... система высвобождает все принадлежащие процессу ресурсы:

Ресурсы могут и не принадлежать процессу. Я могу открыть транзакцию на сервере БД, создать временный файл и т. п.


 
Piter ©   (2007-11-19 19:39) [404]

Юрий Зотов ©   (19.11.07 14:02) [402]
Тебе в этой же ветке не раз говорили (и не только я), что теория и практика не всегда совпадают. И DLL может не освобождаться, и файлы почему-то лочатся, и ресурсов GDI вдруг перестает хватать


и в этой же ветке я вас пять раз спрашивал и вы ни разу не ответили - неужели это именно то, что я должен знать, чтобы иметь смелость с вами спорить? Рихтер однозначно сказал:

"Завершенный процесс не оставляет за собой никаких следов. [b]Надеюсь, я сказал ясно[/b]."

Концовка фразы явно говорит о том, что вопрос злободневный, но ответ Рихтера - именно таков. И по-моему опыту именно так и бывает.

Да, бывает - программа загрузила DLL, поработала, выгрузилась - а DLL занята. А почему? А например потому, что программа зарегистрировала DLL в качествее shell расширения explorer"а. Ну тогда понятно - windows все очистила как надо, да только теперь explorer.exe загрузил эту библиотеку - понятное дело, что она занята. И я уверен, в подавляющем большинстве случае когда кажется что windows не произвела уборку мусора - это лишь кажется, а если разобраться - все объяснимо.
А если даже что-то осталось неосвобожденным, ну так это явно БАГ системы. И еще раз, вы говорили мне о том, что я не имею право с вами разговаривать потому, что я не знаю этого бага (естественно, недокументированного) windows. Прэлестно. Мне кажется это неправильным, вот и все о чем я говорю.

Вы сказали конкретную фразу - если загрузить библиотеку и не сделать freelibrary, а процесс завершится - библиотека будет занята в этом сеансе все равно. Я провел эксперимент, написал тестовое приложение - ваши слова НЕ подтвердились. Заметьте, я не утверждаю, что вы ничего не знаете и вам надо почитать книжки прежде чем со мной спорить. Но обидно, когда вы мне это говорите, что я ничего не знаю, доказывая это примерами, которые ОПРОВЕРГАЮТСЯ простейшими экспериментами и которые противоречат классическим авторам.

Юрий Зотов ©   (19.11.07 14:02) [402]
В этой же ветке ты неоднократно путал сборку мусора и освобождение неуправляемых ресурсов


я этого не путал. Вы меня попросили пояснить, что я представляю себе под "неуправляемыми ресурсами". Я вам рассказал. НИ слова комментария, подозреваю, что я все правильно сказал и подловить было негде.


 
Piter ©   (2007-11-19 19:45) [405]

Юрий Зотов ©   (19.11.07 14:02) [402]
как только я увижу, что ты споришь о чем-либо, толком не понимая предмета (а за тобой такое водится), об этом будет сказано открыто и прямо


это очень некультурно - говорить, что водится. Если мы будем спорить в стиле "кто водится за кем" - на каждого человека можно вылить ушат говна. На вас, Юрий, точно также, я вас уверяю. Поднимая все темы, личную переписку - я много что могу рассказать про вас. А вы наверняка про меня. Но вы каждый раз используете аргументы в этом стиле, я и прошу этого не делать.

Спорить надо аргументировано, я думаю вы с этим согласны. Или не спорить вовсе. Я вам приводил аргументы, в ответ я слышал "ты ничего не понимаешь" - это НЕ аргумент, даже если я не прав. Это ни о чем, это фраза в воздух, это давление авторитетом. Если я не прав - скажите в чем, если я неправильно составил тестовый пример - расскажите в чем ошибка. Вот я предлагаю только так.

В данной ветке в мой адрес вы вообще ни одного аргумента не сказали, только пытались задавить авторитетом. "а ты не вмешивайся", "а ты ничего не понимаешь", "миш хватит", "не смеши людей", но ни слова по делу.

Поэтому в следующий раз, если вы видите что я неправ, расскажите почему я не прав, если вы захотите сказать в стиле "Ты неправ хотя бы потому, что решил со мной поспорить" - то лучше промолчать и игнорировать посты. Ок?


 
Johnmen ©   (2007-11-19 20:11) [406]

Ты виноват уж тем, что хочется мне кушать (с)


 
Anatoly Podgoretsky ©   (2007-11-19 20:11) [407]


> "Завершенный процесс не оставляет за собой никаких следов.
>  [b]Надеюсь, я сказал ясно[/b]."
>
> Концовка фразы явно говорит о том, что вопрос злободневный,
>  но ответ Рихтера - именно таков. И по-моему опыту именно
> так и бывает.

Что и глобальные атомы?


 
Mystic ©   (2007-11-19 21:07) [408]

> А если даже что-то осталось неосвобожденным, ну так это
> явно БАГ системы.


Поэтому Рихтер так и пишет, что все ресурсы освобождаются. В своих трудах он не заостряет внимание на БАГах,а рассказывает о том, какая была задумка e Microsoft. А задумка-то как раз и была освобождать все ресурсы процесса. И, возможно, что программисты Microsoft честно пытались. И в простейших случаях это работает. Тем не менее, иногда встречаются БАГи. И самый простой путь обойти эти баги это явно освободить то, что не освобождается. А если это войдет в привычку, то это и гарантия безопасности от будущих подобных багов.

Простой пример---не отпускается библиотека DLL. Собственно говоря тут есть два пути: либо стать тестером Microsoft и найти причину, по которой библиотека DLL не освободилась... Либо освободить ее руками и не мучаться. Какой путь ты выберешь?


 
Virgo_Style ©   (2007-11-20 00:12) [409]

Помню, как на одной изрядно замученной системе не освобождались mutex"ы...


 
Piter ©   (2007-11-20 01:47) [410]

Mystic ©   (19.11.07 21:07) [408]

я с тобой полностьтью согласен на 100%... но извини, ты наверное плохо читал.


 
Германн ©   (2007-11-20 02:02) [411]


> Piter ©   (20.11.07 01:47) [410]

Ну тогда и меня сосчитай. Я тоже, имхо, плохо читал.


 
Германн ©   (2007-11-20 02:41) [412]


> Virgo_Style ©   (20.11.07 00:12) [409]
>
> Помню, как на одной изрядно замученной системе не освобождались
> mutex"ы...
>

Вспоминая Германн ©   (15.11.07 17:58) [325]
могу добавить, что лично и не один раз был свидетелем ситуации, когда приложение завершалось, а СОМ-порт (который это приложение открывало) оказывался недоступен другим приложениям.


 
Fktrc   (2007-11-20 09:01) [413]

> [29] Юрий Зотов ©   (13.11.07 23:02)
> > Kostafey ©   (13.11.07 22:36) [27]
>
> Вдобавок: отсутствие указателей и средств прямого управления
> памятью, автоматический подсчет ссылок и сборка мусора -
> все это, конечно, позволяет програмисту уделить большее
> внимание решению прикладной задачи и подстраховывает его
> от ошибок. Но, с другой стороны, лишает его мощных возможностей,
> предоставляемых хоть теми же указателями.
>
> Для программиста начинающего важнее первое (все равно пользоваться
> указателями он, как правило, толком не умеет). Для программиста
> опытного важнее второе (а ошибок управления памятью он уж
> как-нибудь и сам не допустит).

Напишите это оберонистам в Королевстве :)


 
megabyte ©   (2007-11-20 12:16) [414]


> Всякий раз, когда говорю о том что программирую на Делфи,
>  то почему-то у всех сразу становятся кислые рожи, как будто
> это язык лунатиков, почему?

Всякий раз, когда говорю, что програмирую на Дельфи, у всех глаза на лоб: "А что, на нем еще программируют..." %)

Топикстартеру: Дай преподу почитать статейку, мож какие мысли появятся Опасности обучения на Java
http://local.joelonsoftware.com/mediawiki/index.php/%D0%9E%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BD%D0%B0_Java


 
Romkin ©   (2007-11-20 13:19) [415]

megabyte ©   (20.11.07 12:16) [414] Ох. Не надо о грустном :)
Связные списки... Хотя бы связные списки! К счастью, есть еще нормальные лабораторные :)


 
Romkin ©   (2007-11-20 13:20) [416]

Кстати, а как на java реализуется что-то вроде http://www.delphimaster.ru/articles/dsort/index.html



Страницы: 1 2 3 4 5 6 7 8 9 
10 11 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 1.53 MB
Время: 0.125 c
15-1194955563
oldman
2007-11-13 15:06
2007.12.16
Можно ли подключать к программе на Дельфи другие dll?


2-1195630426
EugenNFP
2007-11-21 10:33
2007.12.16
Как узнать по какому именно Edit(у) кликнули...


3-1187063232
Ulugbek
2007-08-14 07:47
2007.12.16
Как динамический создать агрегатные поля TClientdataset


15-1195153697
Dark
2007-11-15 22:08
2007.12.16
Форум и управление сообщениями


2-1195713547
San1
2007-11-22 09:39
2007.12.16
EAccessViolation





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский