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

Вниз

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 вся ветка

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

Наверх





Память: 0.46 MB
Время: 0.009 c
9-73956
FVlad
2003-04-19 16:41
2003.10.23
Математика


14-74463
Knight
2003-10-02 23:52
2003.10.23
Кто какие сайты посещает?


4-74530
tytus
2003-08-19 15:45
2003.10.23
OleCheck


3-73969
Bless
2003-10-01 15:48
2003.10.23
Как разрешить модификацию но запретить удаление?


6-74361
Terminus
2003-08-25 16:39
2003.10.23
Помогите найти компоненты для TCP... :)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский