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

Boronin Sergey =?iso-8859-1?q?analisys_=CE=C1_quality=2Es2=2Eru?=
Пн Авг 30 15:29:54 MSD 2004


Всем добрый день.

Я занимаюсь созданием на Kylix 2 Ent. кроссплатформенного ПО для VRG.
Все создаваемое ПО должно быть многопоточным и работать асинхронно.
Пришлось создать класс обеспечивающий потокобезопасное разруливание
блокировок для чтения и записи, причем читать из любого расшаренного
ресурса может одновременно множество потоков, а записывать, только один,
и то, только поле того, как завершаться все читающие потоки, этакий
аналог TMultiReadExclusiveWriteSynchronizer, но с поддержкой вложенных
блокировок(может вкладываться несколько блокировока на чение и только
одна на запись).
Наткнулся на следующую проблему:
В виндах скорость работы потоков в 1000 раз (да именно 10^3 раз) быстрее
чем в линуксе.
Вопрос: «Почему так и как это побороть?»

Дистрибутив:
ALT Linux Master 2.0 (листемные либы не апдейтил) – ядро 2.4.18 (по
умолчанию)
Kylix 2 Enterprise установлен в папку обычного пользователя (не под
рутом, поэтому либы не подменял)

Извините, если мой вопрос offtopic, но хотя бы подскажите где искать.

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



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