Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть поток №1, который выделяет память, заполняет ее некими данными и посылает событе с указателем на эту память другому потоку №2 этого же процесса. Вопрос: кому принадлежит выделенная память? И что произойдет с выделенной памятью если поток №1 завершиться, а второй поток продолжает работать? Уничтожится ли при этом память? Также интересует: в стеке потока хранится выделенная память или только мой указатель на выделенную память? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 11:13 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
Могу кончено, ошибаться, но насколько я понимаю: Shev писал:кому принадлежит выделенная память? первому потоку Shev писал:И что произойдет с выделенной памятью если поток №1 завершиться, а второй поток продолжает работать? Уничтожится ли при этом память? Память уничтожится. Обращение к ней вызовет ошибку. Shev писал:в стеке потока хранится выделенная память или только мой указатель на выделенную память? не понял вопроса. в стеке вроде бы не хранится ни "выделенная память" ни указатель на неё. Если ты сам туда не поместишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2003, 13:36 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
m_kus не соглашусь с тобой.... Shev Итак, память принадлежит приложению, а еще точнее манагеру памяти. Но если потоки не в dll, то можно считать что приложению, а по сему любой поток убивает память выделенную в любом. память умерает сама тогда и только тогда, когда умрет приложение. В стеке хранятся только локальные переменные адреса возвратов и при некоторых условиях функции. У каждого потока свой стек, а по сему с ним можно делать все тоже что и со стеком в однопоточнике, не заботясь о других потоках. Память выделяется глобальная, а по сему для доступа к ней необходимо применять средства синхронизации. Это могут бать Мьютексы, семафоры, критические секции и сигналы. В твоем случае я думаю стоит обратить внимание на класс TMultiReadExclusiveWriteSynchronizer. Он позволит разграничивать доступ к памяти очень удачно с минимальным временем простоя потоков. Не плохо будет и заглянуть в исходники класса, в них написано много интересного и правильного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 05:04 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
Поддерживаю StarWind. За одним исключением... к сожалению не всегда память очищается при закрытии приложения... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 08:55 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
SiDen Ладно, уточним :)) Это ДОЛЖНО быть :)) а если не так, то можно смело относить в разряд глюков операционки :)) Впрочем верно и другое утверждение, если прога после себя оставила в памяти мусор, то это очень нехорошо:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 10:01 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
Народ! Есть такая программа "MemProof". Она проверяет выделение и освобождение памяти программой. К сожалению работает только с Delphi и C++Builder и нужно правильно скомпилировать(поставить нужные для MemProof галочки в компиляторе и линкере). Так вот если память выделяешь, то ее нужно освобождать и ни в коем случае не надеяться, что она освободиться сама. Это я проверял не однократно при помощи той самой "MemProof". К сожалению, дистрибутива сейчас с собой нет, но насколько помню он небольшой, поэтому его можно скинуть по почте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 10:31 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
Cauchy если встретишь такую прогу за углом. направь чтоб ко мне зашла? :)) на мыло :)) Полюбопытствовать интересно Заодним может получится пронаблюдать культурная ли у меня прога :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 11:14 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
<<StarWind Направлю. Завтра принесу болванку на которой записан дистрибутив и направлю. Как бы не забыть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 11:25 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
Cauchy буду премного благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 11:26 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
я вот тут перечитал снова фразу "в стеке потока хранится выделенная память или только мой указатель на выделенную память?".... если постараться, то можно наверное всеж выделить память и в стеке... просто сместить указатель стека на некоторое кол-во байт.... вот только позволит ли операционка... но с другой стороны почему и нет? ведь локальные переменные создаются таким же способом... так что вполне можно и в стеке выделить память. Вот только один недостаток проявляется сразу, по умолчанию в стеке всего один мег памяти на все про все... Но это и решается довольно просто... при создании потока можно указать размер памяти... вобщем возможно мысль будет интересна когда-нить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 11:32 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
<<StarWind Мыло у тебя написано в разделе "Информация"? Я правильно понял? Этож такая хитрая защита от спама... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 11:43 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
совершенно верно просто что-то реклама стройматериалив зачастила..... как-то это пока не входит в сферу моих интересов :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 11:45 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за ответы. Я уже опытным путем исследовал эту проблему - все так как описал StarWind. А по поводу MemProof, то я бы тоже не прочь обзавестись подобной программой (скиньте, please, на мыло). Сейчас пишу небольшой сервер, который обрабатывает входящие запросы по сети. Там создается много всяких потоков, обменивающихся между собой данными. Очень хочется потестировать на утечки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 13:58 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
Спасибо, SergSuper Скачал себе более свежую версию. Что он не требует установки? Тот MemProof, который у меня был, без установки тоже работал, но ничего не показывал. <<StarWind и Shev В принципе тут уже дали ссылку откуда скачать, так что присылать вам ничего уже не нужно. Хотя, если хотите, могу прислать свой "старый" MemProof ( мне не жалко ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2003, 14:59 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
Да нет, спасибо, скачал по ссылке :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 03:24 |
|
||
|
Память и потоки
|
|||
|---|---|---|---|
|
#18+
memproof c BCB6 будет работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2003, 09:35 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2116404]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 304ms |

| 0 / 0 |
