Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

Динамическое выделение памяти в нитях   Найти похожие ветки 

 
SpellCaster   (2007-04-19 16:19) [0]

Как корректно реализовать сие? Прочитал у Рихтера, что выделять динамически небезопасно, поскольку возможен конфликт при обращении к куче.
Задача такая: надо выделить кусок памяти и передать его в основной поток. Как бы это провернуть? Крит.секции тут, наверно, не подойдут - или же придется оборачивать в них вообще все выделения памяти, включая основной поток. Всегда есть Synchronize, конечно, но, может, имеются какие-то многопоточные варианты системных функций, как в visual c. Или я зря парюсь?


 
Сергей М. ©   (2007-04-19 16:21) [1]


> SpellCaster   (19.04.07 16:19)


Читай в справке про "IsMultiThread variable".
До полного отупения либо полного просветления)


 
Сергей М. ©   (2007-04-19 16:25) [2]


> Прочитал у Рихтера, что выделять динамически небезопасно,
>  поскольку возможен конфликт при обращении к куче


Уж не знаю, что там пишет Рихтер, но штатный BMM в составе борландовских продуктов Борланд никому не навязывает. Да и мало ли потокобезопасных кучевых менеджеров существует на свете)


 
SpellCaster   (2007-04-19 20:04) [3]

> Да и мало ли потокобезопасных кучевых менеджеров существует
> на свете)

Хм... подскажи хоть один, а?


 
Сергей М. ©   (2007-04-20 08:29) [4]

Ну, к примеру, менеджер в составе msvcrt.dll


 
Leonid Troyanovsky ©   (2007-04-20 09:59) [5]


> SpellCaster   (19.04.07 16:19)  

> Как корректно реализовать сие? Прочитал у Рихтера, что выделять
> динамически небезопасно, поскольку возможен конфликт при
> обращении к куче.

А разве там не написано, как выделять безопасно?
Читай внимательней, возможно, на другой странице.

--
Regards, LVT.


 
SpellCaster   (2007-04-20 10:41) [6]

> [5] Leonid Troyanovsky ©   (20.04.07 09:59)
Там есть про локальную TLS, но мне-то нужно выделенную память передавать другим потокам. Про такой способ я пока ничего не нашёл.

> [4] Сергей М. ©   (20.04.07 08:29)
А есть пример его использования?

Почитал про IsMultiThread. Выходит, менеджер памяти автоматом переходит в режим многопоточности - и нечего париться?


 
Сергей М. ©   (2007-04-20 11:21) [7]


> Выходит, менеджер памяти автоматом переходит в режим многопоточности
> - и нечего париться?


Конечно)


 
Riply ©   (2007-04-20 11:41) [8]

>  [7] Сергей М. ©   (20.04.07 11:21)
>>Выходит, менеджер памяти автоматом переходит в режим многопоточности - и нечего париться?
> Конечно)
А в каких ситуациях "менеджер памяти автоматом переходит в режим многопоточности" ?
Например, при вызове BeginThread, а еще ?


 
SpellCaster   (2007-04-20 12:34) [9]

> Конечно)

Вот это славно =)


> А в каких ситуациях "менеджер памяти автоматом переходит
> в режим многопоточности" ?

Indicates whether the application spawned additional threads using BeginThread or TThread objects.


 
Leonid Troyanovsky ©   (2007-04-20 14:25) [10]


> SpellCaster   (20.04.07 10:41) [6]

> Там есть про локальную TLS, но мне-то нужно выделенную память
> передавать другим потокам. Про такой способ я пока ничего

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

А по-поводу первого вопроса - VirtualAlloc c передачей
первичному потоку адреса распределенного.
Только, первичный поток и сам может с этим легко справиться.
Т.е., проблемы только в доступе к общей памяти из
разных потоков.
Синхронизация, синхронизация и синхронизация.

Кста, менеджер памяти при установленном IsMultithread
защищает свои данные критической секцией, никакой мистики.

--
Regards, LVT.


 
SpellCaster   (2007-04-23 15:09) [11]

> [10] Leonid Troyanovsky ©   (20.04.07 14:25)

Ясно.

Благодарю всех за помощь!



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
9-1154586671
vladimirg88
2006-08-03 10:31
2007.06.24
картинка внлубь монитора


6-1165135971
B@rm@ley
2006-12-03 11:52
2007.06.24
все ip сети


15-1180070267
Knight
2007-05-25 09:17
2007.06.24
Почтовый сервис в организации...


2-1180793466
Meriguan
2007-06-02 18:11
2007.06.24
ГРАБЕР текстов с сайта...


15-1180447441
umbra
2007-05-29 18:04
2007.06.24
куда катится мир - точка зрения