RE: [sisyphus] Как ускорить работу с потоками?

Boronin Sergey =?iso-8859-1?q?analisys_=CE=C1_quality=2Es2=2Eru?=
Вт Авг 31 11:32:51 MSD 2004


Спасибо, я уже сам нашел причину проблемы. Я использовал в основе своего
класса для разруливания блокировок кроссплатформенную версию
TMultiReadExclusiveWriteSynchronizer, которая по-разному работает в
виндах и линуксе. В виндах BeginRead, работает так, как следует из его
названия, а в линуксе, реализации BeginRead и BeginWrite одинаковы и
используют _phtread_mutex (из библиотеки libc), отсюда и разность в
поведении. После того, как я это учел, все заработало нормально и с
нормальной скоростью, так что это была моя ошибка.

Так что проблема решена, спасибо.

Интересная особенность, что при попытке создания 1015 потоков в линуксе,
выдается exception, при том, что в винде и 8000 потоков нормально
отрабатывали, хотя и медленно. Не знаете с чем это может быть связано?


С уважением,
Боронин Сергей

-----Original Message-----
From: Gleb Kulikov [mailto:glebus на asd.iao.ru] 
Sent: Monday, August 30, 2004 9:07 PM
To: analisys на quality.s2.ru; ALT Linux Sisyphus discussion list
Subject: Re: [sisyphus] Как ускорить работу с потоками?

В сообщении от Понедельник 30 Август 2004 18:29 Boronin Sergey написал:

> и то, только поле того, как завершаться все читающие потоки, этакий
> аналог TMultiReadExclusiveWriteSynchronizer, но с поддержкой вложенных
> блокировок(может вкладываться несколько блокировока на чение и только

> Вопрос: «Почему так и как это побороть?»

Поподробнее, как реализована блокировка? 
-- 
						Салют, /GLeb

UIN: 15341920
jabber://gleb@asd.iao.ru
netmail: 2:5005/78


Подробная информация о списке рассылки Sisyphus