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

Boost.Flyweight Documentation - Locking policies reference

Boost , , Boost.Flyweight Documentation - Reference

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

Boost.Flyweight Locking policies reference



Contents

Preliminary concepts

mutex- это тип, объекты которого могут находиться в любом из двух состояний, называемых заблокированными и разблокированными, с свойством, что когда нить A заперла mutex<m>и другая нить B пытается заблокировать<m>, B блокируется до тех пор, пока A не разблокирует<m>. Кроме того, говорят, что mutex поддерживаетрекурсивную блокировку, если поток может успешно вызвать операцию блокировки для mutex, уже заблокированного этим же потоком; в этом случае требуется, чтобы поток выполнял столько операций разблокировки, сколько операций блокировки он выполнил для того, чтобы mutex стал эффективно разблокированным. Замокс прицеломявляется типом, связанным с некоторым типом mutex, объекты которого блокируют / разблокируют mutex во время строительства / разрушения.

В следующей таблице<Mutex>является мутексным типом,<m>является объектом типа<Mutex>,<Lock>представляет собой ограниченный замок, связанный с<Mutex>и<lk>является значением<Lock>.

Требования к Mutex и Scoped Lock.
выражениевозвратный типутверждение/примечание
пред/пост-условие
<Mutex m;> Пост:<m>разблокирован.
<(&m)->~Mutex();><void>Предварительно:<m>Разрешено.
<Lock lk(m);> Связь<m>с<lk>и замки<m>.
<void>Разблокирует мутекс, связанный с<lk>.

Эти понятия очень похожи, но не полностью эквивалентны омонимам, описанным вБиблиотеке Нити Роста.

Locking policies

Политика блокировкиописывает тип мутекса и связанный с ним тип блокировки.<flyweight>использует заданную политику блокировки для синхронизации доступа к своему внутреннемузаводу.

Тип<Locking>является политикой блокировки, если:

Одно из следующих условий выполнено:
  1. is_locking<Locking>::typeboost::mpl::true_,
  2. Lockingимеет формуlocking<Locking'>.
  • ТипLocking::mutex_type(илиLocking'::mutex_type, если применяется (b)) является модельюMutexи поддерживает рекурсивную блокировку.
  • ТипLocking::lock_type(илиLocking'::lock_type, если применяется (b)) являетсяScoped Lockмутекса, упомянутого выше.
  • [ORIG_END] -->

    Header "boost/flyweight/locking_tag.hpp" synopsis

    namespace boost{
    namespace flyweights{
    struct locking_marker;
    template<typename T>
    struct is_locking
    template<typename T>
    struct locking;
    } // namespace boost::flyweights
    } // namespace boost
    

    Class template is_locking

    Если пользователь не специализируется,<is_locking<T>::type>является<boost::mpl::true_>, если<T>является производным от<locking_marker>, и это<boost::mpl::false_>В противном случае.

    Class template locking

    <locking<T>>является синтаксической конструкцией, предназначенной для указания на то, что<T>является политикой блокировки, не прибегая к механизмам, предоставляемым шаблоном класса<is_locking>.

    Header "boost/flyweight/simple_locking_fwd.hpp" synopsis

    namespace boost{
    namespace flyweights{
    struct simple_locking;
    } // namespace boost::flyweights
    } // namespace boost
    

    <simple_locking_fwd.hpp>форвард объявляет класс<simple_locking>.

    Header "boost/flyweight/simple_locking.hpp" synopsis

    Class simple_locking

    <Locking Policy>, который определяет базовый тип мутекса, основанный на простейших механизмах синхронизации, предоставляемых окружающей средой; Когда возможности резьбы отсутствуют,<simple_locking>указывает тип манекена без фактических возможностей синхронизации.

    Header "boost/flyweight/no_locking_fwd.hpp" synopsis

    namespace boost{
    namespace flyweights{
    struct no_locking;
    } // namespace boost::flyweights
    } // namespace boost
    

    <no_locking_fwd.hpp>форвард объявляет класс<no_locking>.

    Header "boost/flyweight/no_locking.hpp" synopsis

    Class no_locking

    Нуль<Locking Policy>: Он определяет тип манекена, который удовлетворяет формальным требованиям для концепции<Mutex>, но не выполняет блокировку потоков.<no_locking>должны использоваться только в однопоточной среде.




    Пересмотрено 9 марта 2010 года

    © Copyright 2006-2010 Joaquín M López Muñoz. Распространяется под лицензией Boost Software License, версия 1.0. (См. сопроводительный файлLICENSE_1_0.txtили копию в) http://www.boost.org/LICENSE_1_0.txt

    Статья Boost.Flyweight Documentation - Locking policies reference раздела Boost.Flyweight Documentation - Reference может быть полезна для разработчиков на c++ и boost.




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



    :: Главная :: Boost.Flyweight Documentation - Reference ::


    реклама


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

    Время компиляции файла: 2024-08-30 11:47:00
    2025-07-05 06:06:38/0.0042109489440918/0