Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Thread safety guarantees

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 17. Boost.Intrusive

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Интрузивные контейнеры имеют гарантии безопасности резьбы, аналогичные контейнерам STL.

  • Несколько потоков, имеющих доступ к различным экземплярам, безопасны, если вставленные объекты различны.
  • Доступ к одному и тому же контейнеру безопасен.

Некоторые назойливые крючки (например, автоматические крючки) изменяют контейнеры без ссылки на них: это считается письменным доступом к контейнеру.

Другие функции, такие как проверка, если объект уже вставлен в контейнер с использованием, связаны().Составляющие безопасные крючки, представляют собой считываемый доступ к контейнеру без ссылки на него, поэтому ни одна другая нить не должна иметь письменный доступ (прямой или косвенный) к этому контейнеру.

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

Как мы видим, анализ нитевой безопасности программы с использованиемBoost.Intrusiveсложнее, чем с неинтрузивными контейнерами.

Для анализа безопасности резьбы рассмотрите следующие моменты:

  • Деструктор крючка автоотмыкания иunlink()функции изменяют контейнер косвенно.
  • Функции безопасного режима и автоматических крючковявляются связанными()являются считываемым доступом к контейнеру.
  • Вставка объекта в контейнеры, которые будут модифицированы различными нитями, не гарантирует безопасность нити, хотя на большинстве платформ она будет безопасна без блокировки.

PrevUpHomeNext

Статья Thread safety guarantees раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 17. Boost.Intrusive может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 17. Boost.Intrusive ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:33:21/0.025483131408691/1