![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
И снова потоки...
skywalker © (2002-03-06 17:48:00)Еще один вопрос...
Никто не встречался с проблемой подвисания потока, через какие-то
(скорее всего одинаковые) промежутки времени? При этом внешних причин нет никаких. В потоке я использую блокирующий сокет, созданный через API, и управляемый тоже через API. Может причина в нем? Зависание происходин не во время работы с сокетом а в произвольное время. Точнее, я заметил закономерность. У меня есть
несколько объектов, которые создаются в рантайме и указатели на них сохраняются в динамическом массиве. И вот каждый раз, когда
я получаю длинну массива или использую переменную, в которой
хранится эта длина, поток подвисает а потом идет дальше. Так же он подвисает, когда я использую recv или accept в операциях с сокетом. Вроде бы все симптомы описал...
Может у кого-нибудь встречалась подобная проблема?
thnx
Виктор Щербаков (2002-03-11 11:31:00) [1]
> каждый раз, когда
> я получаю длинну массива или использую переменную, в которой
> хранится эта длина, поток подвисает а потом идет дальше
Может быть дело в том, что доступ к главной куче процесса осуществляется потоками последовательно?
bob5 (2002-03-11 11:02:00) [2]У меня было тоже самое в потоке сохраненял измененные записи.
Использовал и критические секции и синхронизацию. Проблема с зависанием была точно такой же только чем чаще обращался к записи тем на дольше подвисал поток. при этом поток чтения работал и работает нормально. Пришлось отказаться от потока на запись.
Fellomena (2002-03-06 18:54:00) [3]Может поток обращается к каким-нибудь ресурсам, которые в критической секции распологаются и в момент обращения заняты другими потоками ? Может не крит. секция, а мьютекс или симафор ? Посмотри... А может дело в пресловутой вытесняющей многозадачности ;) Попробуй дельта-приоритет потоку повысь и посмотри что получится .