Вниз
Скачать: CL | DM;

Потокобезопасность New / Dispose   Найти похожие ветки 

← →
Piter ©   (2006-01-04 20:06) [0]

Насколько безопасно использовать New в одном потоке, а Dispose делать в другом потоке?

Объекты внутри записей не используются.


← →
begin...end ©   (2006-01-04 20:41) [1]

Насколько я знаю, безопасно. Только менеджер памяти должен быть уведомлен о многопоточности (с помощью переменной IsMultiThread).


← →
jack128 ©   (2006-01-04 20:56) [2]

А сам как думаешь? Например в ряде случаев TThread может создаться в одном  потоке, а уничтожаться в другом ;)


← →
Almaz ©   (2006-01-05 11:53) [3]


> Только менеджер памяти должен быть уведомлен о многопоточности
> (с помощью переменной IsMultiThread).

Если не использовать CreateThread напрямую, а использовать функцию BeginThread или наследников TThread, то самому изменять значение IsMultiThread не нужно - за вас это сделает BeginThread.

Удачи.


← →
Piter ©   (2006-01-05 13:30) [4]

Ясно... а вот интересно, в продолжении темы. А почему по умолчанию не установлена isMultiThread в true? Чем это "плохо"?


← →
begin...end ©   (2006-01-05 13:34) [5]

> Piter ©   (05.01.06 13:30) [4]

> Чем это "плохо"?

Замедлением работы менеджера памяти, например.


← →
Piter ©   (2006-01-05 13:47) [6]

begin...end ©   (05.01.06 13:34) [5]
Замедлением работы менеджера памяти, например


я тоже подумал об этом. Но ты это знаешь или тоже предполагаешь?


← →
begin...end ©   (2006-01-05 13:54) [7]

> Piter ©   (05.01.06 13:47) [6]

Я предполагаю. Глядя на код в getmem.inc.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
4-1132845187
dracula
2005-11-24 18:13
2006.02.05
Количество байт в одном секторе


2-1137268104
Bopros
2006-01-14 22:48
2006.02.05
Обработка исключительных ситуаций без SysUtils


1-1135901247
Name
2005-12-30 03:07
2006.02.05
Ошибки программы


2-1137666947
De
2006-01-19 13:35
2006.02.05
Что такое object?


4-1132995988
VolanD666
2005-11-26 12:06
2006.02.05
Списко процессов




   Наверх