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

Вниз

TThread - и совместное использование данных   Найти похожие ветки 

 
Michael Makushev   (2003-08-18 13:30) [0]

Есть в программе класс производный от TThread. После запуска главной формы создается экземпляр и запускается в свободное плавание. Дальше есть список объектов (не важно каких) TObjectList.
Вопрос вот в чем: тред обращается к объекту из списка (получает на него указатель и вызывает его метод). И одновременно с этим с главной формы по кнопке может поступить комманда на уничтожение списка. Как будут вести себя тред, список и вызывающая уничтожение функция? (по моим данным что-то где-то вызывало подвисание). Какие способы избежать коллизий?


 
Игорь Шевченко ©   (2003-08-18 13:49) [1]

TMultiReadExclusiveWriteSynchronizer :)
Или набор критических секций для защиты списка от одновременного доступа.


 
Digitman ©   (2003-08-18 13:50) [2]

используй, к примеру, объект TCriticalSection для арбитража доступа к списку со стороны более чем одного кодового потока


 
Verg ©   (2003-08-18 15:19) [3]


> TMultiReadExclusiveWriteSynchronizer


Эт-то такая нетривиальная штука, что я ей до сих пор боюсь доверять, хотя говорят, что с Д6 типа все глюки отловили и поправили, но...


 
HolACost! ©   (2003-08-18 16:33) [4]

Удалено модератором
Примечание: Offtopic


 
Digitman ©   (2003-08-18 16:47) [5]


> HolACost


TCriticalSection как раз и инкапсулирует функц-ть крит.секций, предоставляемых WinAPI


 
Michael Makushev   (2003-08-18 17:12) [6]

Спасибо, господа. Хотя как я понимаю TMultiReadExclusiveWriteSynchronizer повился в D6?
Или и в D5 он был?


 
Verg ©   (2003-08-18 17:17) [7]

TMultiReadExclusiveWriteSynchronizer появился давно. По-моему он еще и в 3-ке был. Но глуковат был по жизни. Его использование иногда (именно иногда, очень редко) приводило к явлениям "несовместимым с жизнью", например, dead lock (взаимное плокирование потоков). В D6 его основательно переработали и с этих пор , вроде бы все в порядке.
Применение сего механизма оправдано только в очень некоторых случаях (имхо).
В вашем же случае достаточно тривиальной critical section.


 
HolACost! ©   (2003-08-18 19:44) [8]

Удалено модератором
Примечание: Offtopic



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
14-74402
totkto
2003-10-06 08:44
2003.10.23
давайте объединимся


1-74149
AlexanderSK
2003-10-10 15:01
2003.10.23
Varian - массив в массиве


1-74163
Ev1972
2003-10-10 11:41
2003.10.23
Как изменить ширину полосы прокрутки у TListBox?


6-74356
scruff
2003-08-23 20:01
2003.10.23
Голосовой чат для лок сети


4-74520
pool
2003-08-18 17:14
2003.10.23
как узнать раскладку клавиатуры