Глубины Indy


Выбор между Critical Sections и TMREWS


Поскольку класс TMREWS имеет некоторые проблемы, мой совет просто избегать его. Если вы решили использовать его, вы должны быть уверены, что это действительно лучший выбор и он должен быть реализован с помощью пропатченной версии, не подверденной зависаниям.

Правильное использование TCriticalSection в большинстве случаев дает обычно такой же быстрый синхронизированный доступ, а в некоторых случаях самый. Научитесь правильно использовать TCriticalSection, так как неправильное исаольщование может иметь негативное влияние на производительность.

Ключом к защите любых ресурсов является использование множества точек входа в секции и выполнение критических секций кода как можно быстрее. Когда проблема может быть разрешена с помощью критических секций, то она должна решаться с их помощью, вместо использования TMREWS, поскольку критические секции проще и быстрее. В общем, всегда используйте критические секции вместо TMREWS.

Класс TMREWS работает лучше, если встретятся следующие условия:

1. доступ осуществляется по чтению и записи.

2.      преобладает доступ по чтению.

3.      период блокировки велик и не может быть разбит на меньшие независимые куски.

4.      доступен пропатченый класс TMREWS и известно что он работает корректно.



Содержание раздела