![]() |
![]() ![]() ![]() ![]() |
![]() |
Boost.Flyweight Documentation - Locking policies referenceBoost , , Boost.Flyweight Documentation - Reference
|
|||||||||||||||||||
| выражение | возвратный тип | утверждение/примечание пред/пост-условие |
|---|---|---|
<Mutex m;> | Пост:<m>разблокирован. | |
<(&m)->~Mutex();> | <void> | Предварительно:<m>Разрешено. | <Lock lk(m);> | Связь<m>с<lk>и замки<m>. |
<void> | Разблокирует мутекс, связанный с<lk>. |
Эти понятия очень похожи, но не полностью эквивалентны омонимам, описанным вБиблиотеке Нити Роста.
Политика блокировкиописывает тип мутекса и связанный с ним тип блокировки.<flyweight>использует заданную политику блокировки для синхронизации доступа к своему внутреннемузаводу.
Тип<Locking>является политикой блокировки, если:
is_locking<Locking>::typeboost::mpl::true_,Lockingимеет формуlocking<Locking'>.Locking::mutex_type(илиLocking'::mutex_type, если применяется (b)) является модельюMutexи поддерживает рекурсивную блокировку.Locking::lock_type(илиLocking'::lock_type, если применяется (b)) являетсяScoped Lockмутекса, упомянутого выше."boost/flyweight/locking_tag.hpp" synopsisnamespace boost{ namespace flyweights{ struct locking_marker; template<typename T> struct is_locking template<typename T> struct locking; } // namespace boost::flyweights } // namespace boost
is_lockingЕсли пользователь не специализируется,<is_locking<T>::type>является<boost::mpl::true_>, если<T>является производным от<locking_marker>, и это<boost::mpl::false_>В противном случае.
locking<locking<T>>является синтаксической конструкцией, предназначенной для указания на то, что<T>является политикой блокировки, не прибегая к механизмам, предоставляемым шаблоном класса<is_locking>.
"boost/flyweight/simple_locking_fwd.hpp" synopsisnamespace boost{ namespace flyweights{ struct simple_locking; } // namespace boost::flyweights } // namespace boost
<simple_locking_fwd.hpp>форвард объявляет класс<simple_locking>.
"boost/flyweight/simple_locking.hpp" synopsissimple_locking<Locking Policy>, который определяет базовый тип мутекса, основанный на простейших механизмах синхронизации, предоставляемых окружающей средой; Когда возможности резьбы отсутствуют,<simple_locking>указывает тип манекена без фактических возможностей синхронизации.
"boost/flyweight/no_locking_fwd.hpp" synopsisnamespace boost{ namespace flyweights{ struct no_locking; } // namespace boost::flyweights } // namespace boost
<no_locking_fwd.hpp>форвард объявляет класс<no_locking>.
"boost/flyweight/no_locking.hpp" synopsisno_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 ::
реклама |