Cntm.Concurrency


Подробное описание

Данный пакет содержит базовые классы, связанные с единицами выполнения.

Единица выполнения это код (обычно метод объекта), выполняющийся, в определенной степени, автономно (по времени) от кода, создавшего единицу выполнения. К единицам выполнения относятся асинхронные процедуры и потоки активных объектов (см. документацию по пакетам асинхронных процедур и активных объектов).

Базовый класс единицы выполнения - Cntm::ExecutionUnit. Потомки этого класса предоставляют сервис по созданию конкретных типов единиц выполнения. Взаимодействие с единицами выполнения осуществляется через специальные объекты - хэндлы, которые во многом схожи со ссылочными указателями. Класс Cntm::ExecutionUnitHandle является базовым классом хэндлов единиц выполнения.

В некоторых случаях (например, для активных объектов) единица выполнения не хранит ссылочный указатель на объект, метод которого выполняет. Для получения ссылочного указателя из обычного (например, из this) можно применять т.н. Using-объекты, которые комбинируют преобразование и хранение ссылочного указателя на объект с проверкой требования завершения текущей единицы выполнения и состояния объекта (объект не должен находиться в удаляемом состоянии). Для этого служат классы Cntm::Using, Cntm::UsingSync и Cntm::UsingReentrantSync. Последние два помимо всего прочего производят вход в синхропространство.


Классы

class  Cntm::ExecutionUnit
 Базовый класс единицы выполнения программы. Подробнее...
class  Cntm::ExecutionUnitHandle
 Класс хэндла единицы выполнения. Подробнее...
class  Cntm::TerminatingSignal
 Базовый класс сигнала, использующегося в качестве исключения при завершении потоков активных объектов и асинхронных процедур. Подробнее...
class  Cntm::Using
 Объекты данного класса используются как scoped-объекты, наподобии auto_ptr и т. Подробнее...
class  Cntm::UsingReentrantSync
 Добавляет к Cntm::Using свойства синхросекций, т. Подробнее...
class  Cntm::UsingSync
 Добавляет к Cntm::Using свойства синхросекций, т. Подробнее...


SourceForge.net Logo
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой  doxygen 1.5.3